4

私はこれを一行で持っています:

We were born in the earth beyond the land

私はそれを3つの単語行で、次のようにしたい:

We were born
in the earth 
beyond the land
4

5 に答える 5

0

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
于 2013-04-12T20:08:14.693 に答える
0

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'
于 2013-04-12T20:12:44.400 に答える
0

awk と sed を備えたシステムには、ほぼ確実に Perl も含まれています。

 cat myfile.txt | perl -lane 'while(($a,$b,$c) = splice(@F,0,3)){print "$a $b $c"}'
于 2013-04-12T20:13:02.953 に答える