「、」で区切られたテキスト行を1行に1つの文字列を含むファイルに分割する方法は?

「、」で区切られたテキスト行を1行に1つの文字列を含むファイルに分割する方法は?

フォーマットされた文字列を含むファイルがあり、次の標準のA,B,C,D...Linuxユーティリティを使用してファイルに保存したいと思います。

A
B
C
D 
...

元のファイルの内容は動的であり、0、1、および2つ以上の文字列を含めることができます。どうすればいいですか?

答え1

trすべてのカンマを改行文字に変更するには、次の手順を実行します。

$ cat input.txt 
a,b,c
d,e
f
$ tr , '\n' < input.txt 
a
b
c
d
e
f

答え2

これを使用して、非grepカンマ文字で構成される連続した文字列を見つけることができます。新しい行は「無料」です。

grep -Eo "[^,]+" input.txt

答え3

cat > file
a,b,c
d,e
f
perl -pe "s/,/\n/g" file
a
b
c
d
e
f

答え4

Raku(以前のPerl_6)の使用

raku -pe 's:g/\,/\n/;'

または(おそらくもっと読みやすくなります):

raku -pe 's:g[\,] = qq[\n];'

入力例:

a,b,c
d,e
f

出力例:

a
b
c
d
e
f

注:最初s///または2番目のs[…]=[…]形式を使用して入力テキストを引用符/エスケープするのに問題がある場合、または/区切り[]記号/区切り記号のペアを別の文字/文字に変更することができます。s{…}={…}

https://raku.org

関連情報