2

次のようなテキストの塊があります。

abcd,def,geff,hij,klmn,nop,qrs,tuv,wxyz,....

awk または任意の unix (mac) マジックを使用して、4 番目のコンマ (,) を改行に置き換えるのを手伝ってくれませんか!

4

3 に答える 3

3

4 番目のオカレンスを置き換えるには、次,を使用できます。

echo "abcd,def,geff,hij,klmn,nop,qrs,tuv,wxyz,...." | sed 's/,/\n/4'

4 回出現するたびに置き換えるには、次のようにします。

echo "abcd,def,geff,hij,klmn,nop,qrs,tuv,wxyz,...." | sed 's/\(\([^,]*,\)\{3\}[^,]*\),/\1\n/g'
于 2012-07-20T09:10:48.500 に答える
2

4 番目のコンマのみを変更するには:

sed 's/\(\([^,]*,\)\{3\}[^,]*\),/\1\n/'

(注: rushはこれを行うためのよりクールな方法を示しています):s/,/\n/4

4 つごとのコンマを変更するには、次のgフラグを追加します。

$ echo 'abcd,def,geff,hij,klmn,nop,qrs,tuv,wxyz,....' |\
> sed 's/\(\([^,]*,\)\{3\}[^,]*\),/\1\n/g'
abcd,def,geff,hij
klmn,nop,qrs,tuv
wxyz,....

ここにsed 参照があります。

一言で言えば、コマンドはパターンを見つけます

(( non-commas - comma ) (3 times) - (non-commas)) comma

そしてそれをに変更します

"whatever is in outer brackets" + newline.
于 2012-07-20T09:04:13.257 に答える
0

デフォルトのアクションxargs/bin/echo
http://unixhelp.ed.ac.uk/CGI/man-cgi?xargsであるため、機能します

echo 'abcd,def,geff,hij,klmn,nop,qrs,tuv,wxyz,....' | xargs -d, -n4 | tr ' ' ','
于 2012-07-20T09:12:10.200 に答える