私はこれを一行で持っています:
We were born in the earth beyond the land
私はそれを3つの単語行で、次のようにしたい:
We were born
in the earth
beyond the land
GNU sed の場合:
sed 's/\(\w\w*\W*\w\w*\W*\w\w*\W*\)/\1\n/g' input
と短いバージョン:
sed 's/\(\(\w\w*\W*\)\{3\}\)/\1\n/g' input
sed ソリューションの 1 つを次に示します。
sed -e 's/\s/\n/3;s/\s/\n/6;s/\s/\n/9'
3 番目、6 番目、9 番目のスペースを改行に置き換えます。
これは、3 つの単語の倍数でなくても、長い行を処理します。
sed -e 's/\(\(\S\{1,\}\s*\)\{3\}\)/\1\n/g'
awk と sed を備えたシステムには、ほぼ確実に Perl も含まれています。
cat myfile.txt | perl -lane 'while(($a,$b,$c) = splice(@F,0,3)){print "$a $b $c"}'