在文本文件(windows)中我有:
sometexthere"
nothingtodohere
yessomethinghere"
etc
使用AWK(在Ubuntu中)如何删除行末尾的撇号,用半冒号替换它:加入下一行?
所以它看起来像这样:
sometexthere:nothingtodohere
yessomethinghere:etc
答案 0 :(得分:3)
这样:
awk '1' RS='"\n' ORS=':' yourfile
设置你的记录sep。加倍加引号和断行,以及你的输出记录sep。加入角色。
对于DOS
换行符,只需调整regex
:
awk '1' RS='"\r\n' ORS=':' yourfile
注意:1
的含义是什么?
简短回答,它只是一个快捷方式,以避免使用print语句。在awk中条件匹配时,默认操作是打印输入行,例如:
$ echo "test" |awk '1'
test
那是因为1
总是true,所以这个表达式相当于:
$ echo "test"|awk '1==1'
test
$ echo "test"|awk '{if (1==1){print}}'
test