每当遇到逗号时在文件中插入换行符 - Shell脚本

Shr*_*har 3 unix shell awk

我需要编写一个shell脚本来通过插入换行符来重新格式化文件.条件是当我们在文件中遇到逗号时应插入换行符.

例如,如果文件delimiter.txt包含:

这是一个文件,当我们找到逗号时,应该添加一个换行符.

输出应该是:

this
is a file
that should
be added
with a
line break
when we find a
a comma.
Run Code Online (Sandbox Code Playgroud)

可以这样做grep还是awk

use*_*001 6

tr是为了什么

$ tr ',' '\n' <<< 'this, is a file, that should, be added, with a, line break, when we find, a comma.'
this
 is a file
 that should
 be added
 with a
 line break
 when we find
 a comma.
Run Code Online (Sandbox Code Playgroud)

或者如果你必须使用awk:

awk '{gsub(", ", "\n", $0)}1' delimiter.txt
Run Code Online (Sandbox Code Playgroud)


hek*_*mgl 5

使用GNU sed:

sed 's/, /\n/g' your.file
Run Code Online (Sandbox Code Playgroud)

输出:

this
is a file
that should
be added
with a
line break
when we find a
a comma. 
Run Code Online (Sandbox Code Playgroud)

注意:上面的语法仅适用于具有\nLinux行和分隔符和最多UNIX的系统.

如果您需要在脚本中使用门户网站解决方案,请使用以下表达式,该表达式使用文字新行而不是\n:

sed 's/,[[:space:]]/\
/g' your.file
Run Code Online (Sandbox Code Playgroud)

感谢@EdMorten提供此建议.