我正在尝试清理看起来像这样的文件:
insert....;
update.....;
del
ete.......;
in
sert........;
我想删除不以分号结尾的行的新行字符,并在清理文件后应该:
insert.......;
update.......;
delete.......;
insert........;
答案 0 :(得分:1)
你的意思是这样吗?
$ cat in
insert....;
update.....;
del
ete.......;
in
sert........;
$ awk '{if ($0 ~ /;$/) {print} else {printf ("%s", $0)}}' in
insert....;
update.....;
delete.......;
insert........;
答案 1 :(得分:0)
作为@Jens答案的替代方案,我使用了sed
$ cat test.txt
insert....;
upd
ate.....;
del
ete.......;
insert........;
$ sed -e ':a;N;$!ba;s/\n//g' -e 's/;/;\n/g' < test.txt > test2.txt
$ cat test2.txt
insert....;
update.....;
delete.......;
insert........;
这确实会在文件末尾产生一个空白行