1
4
您的输入文件是在Windows上创建的,因此每行末尾都有虚假的控件Ms。您已经发现可以在输入文件上运行dos2unix来解决这个问题。 除此之外:
Awk不适用于线路,它适用于记录。awk的默认记录分隔符(RS)是一个换行符,所以它在外行看来就像awk在行上工作一样,但这只是一种默认行为。你可以告诉awk使用其他字符来分隔记录,但对于大多数awk来说,RS只能是一个字符,所以当微软决定插入一个2个字符的行尾字符串时
使用GNU awk(可能还有其他一些),您可以为RS指定一个多字符正则表达式,这样他们只需将RS设置为
|
2
1
由于我的两个例子,小例子和完整例子,都使用了我的命令,我得出的结论是行结尾有问题。使用diff和file命令证实了这一怀疑。出于某种原因,我有CRLF的行尾,awk不喜欢这样(真的吗?请支持各种行尾:()。 解决方案是:转换为LF行结尾。为此,我使用了dos2unix。在那之后,这些东西就如预期的那样工作了。 |
3
1
试试这一行:
或
它输出:
编辑 完整文件的输出:
|
4
0
甚至你的第二个命令也对我有效。 |
mashimena · 如何在Linux中提取列然后通过计算添加新列 1 年前 |
John Smith · 在特定行的末尾添加文本 2 年前 |
nickcrv06 · 使用介于特殊字符之间的awk提取文本 2 年前 |
nickcrv06 · 在两个常量字符串之间提取单词 2 年前 |
JCAvila2 · 我需要了解awk Linux命令的帮助 2 年前 |