Один из вариантов - использовать perl регулярное выражение , например:
cat in.txt | perl -pe 's/(([^ ]+ +){4})/$1\n/g' > out.txt
Регулярное выражение сказал, чтобы найти один или несколько пробелов, за которыми следует один или несколько пробелов, и сгруппируйте предыдущие 2 вещи в набор из 4, а затем добавьте новую строку после каждого совпадения.
Тестовый пример:
echo "snp200 snp1 snp100 snp32 1 13454356 0 2 0 0 0 2 2 2 2 1" | perl -pe 's/(([^ ]+ +){4})/$1\n/g'
snp200 snp1 snp100 snp32
1 13454356 0 2
0 0 0 2
2 2 2 1
Хотя на справочной странице zshbuiltins(1)
это не указано, команда fc
почти такая же, как и ее аналог bash
. Просто (F )ix (C )команда.