我有一个文件test.txt,在这几行中只有一个逗号,如下所示。
$ cat test.txt
ABCD
Test,plan
Sample
Working
Tester,Developer
Learn
Teach
Study
Coding
Stack,exchange需要的产出如下:
ABCD
ABCD
Sample
Working
Working
Learn
Teach
Study
Coding
Coding我无法找到使用unix命令来像上面那样打印的方法,请告诉我如何处理这个逗号行搜索,并用上面的行替换它。
按以下方式进行搜索,但不确定是否替换:
#Searching comma
sed -i 's/,/replace_above_line/g' test.txt我想用文件中任何一行都有逗号的前一行替换全局。
发布于 2020-09-02 21:34:02
使用sed,您需要在模式空间中保持两行--例如
sed -i -e '$!N;s/\(.*\)\n.*,.*/\1\n\1/' -e 'P;D' file或者,使用ed,您可以在逗号行(g/,/-1)之前标记每一行,然后复制它们(t),然后返回并删除原始的(-1d):
$ ed -s file
g/,/-1t\
-1d
wq或者是一字一句:
printf '%s\n' g/,/-1t\\ -1d wq | ed -s filehttps://unix.stackexchange.com/questions/607579
复制相似问题