0

私の入力ファイルは次のとおりです。

zoo1
----

cat
dog
mouse

zoo2
----

lion
tiger
zebra

出力ファイルを次のようにします。

cat,dog,mouse
lion,tiger,zebra

方法はありますか?

4

4 に答える 4

2

片道awk:

$ awk '!(NR%2){$1=$1;print}' FS='\n' OFS=',' RS= file
cat,dog,mouse
lion,tiger,zebra
于 2013-10-01T14:34:26.420 に答える
2

あなたの質問の例では、このワンライナーが機能します:

 awk -v RS= '/----/{next}{gsub(/\n/,",")}7' file

または次のように設定しますOFS and FS

awk -v RS= -v OFS="," -F'\n' '/----/{next}$1=$1' file

ちょっとしたテスト:

kent$  awk -v RS= '/----/{next}{gsub(/\n/,",")}7' f
cat,dog,mouse
lion,tiger,zebra



kent$  awk -v RS= -v OFS="," -F'\n' '/----/{next}$1=$1' f
cat,dog,mouse
lion,tiger,zebra
于 2013-10-01T14:02:17.403 に答える
0

trこれを行うための非常にシンプルで理解しやすい方法を提供します。

tr -s \\n ","

http://linuxcommand.org/lc3_man_pages/tr1.html

于 2020-05-13T06:57:04.473 に答える