如果AWK中有某个字符,如何连接下一行?

如果AWK中有某个字符,如何连接下一行?,awk,Awk,在文本文件(windows)中,我有: 使用AWK(在Ubuntu中)如何删除行尾的撇号“用分号替换:并加入下一行 看起来是这样的: sometexthere:nothingtodohere yessomethinghere:etc 这样: awk '1' RS='"\n' ORS=':' yourfile 只需将记录sep.设置为双引号加换行符,将输出记录sep.设置为连接字符 对于DOS换行符,只需调整regex: awk '1' RS='"\r\n' ORS=':' yourfile

在文本文件(windows)中,我有:

使用AWK(在Ubuntu中)如何删除行尾的撇号“用分号替换:并加入下一行

看起来是这样的:

sometexthere:nothingtodohere
yessomethinghere:etc
这样:

awk '1' RS='"\n' ORS=':' yourfile
只需将记录sep.设置为双引号加换行符,将输出记录sep.设置为连接字符

对于
DOS
换行符,只需调整
regex

awk '1' RS='"\r\n' ORS=':' yourfile
注意:这是什么意思

简单回答,这只是避免使用print语句的快捷方式。在awk中,当条件匹配时,默认操作是打印输入行,例如:

$ echo "test" |awk '1'
test
这是因为
1
将始终为,因此此表达式等效于:

$ echo "test"|awk '1==1'
test
$ echo "test"|awk '{if (1==1){print}}'
test

不,仍然完全一样(ubuntu),复制并粘贴一个文件中的示例并测试它。啊,对不起,我在问题中添加了额外的信息(文本文件是windows文本文件)&我在ubuntu中使用AWK…这些信息有帮助吗?谢谢,这是一个完美的答案。我有很多东西要学习,我开始阅读AWK书籍:)
$ echo "test"|awk '1==1'
test
$ echo "test"|awk '{if (1==1){print}}'
test