如何将一行由“,”分隔的文本拆分为每行包含一个字符串的文件?

如何将一行由“,”分隔的文本拆分为每行包含一个字符串的文件?

我有一个包含 格式的字符串的文件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///或第二种s[…]=[…]形式,如果您在引用/转义输入文本时遇到困难,您可以将/[]分隔符/分隔符对更改为另一个字符/字符(例如使用替代)。s{…}={…}

https://raku.org

相关内容