regex - Linux grep/awk : Filter lines in a file, 但在 EOF 处克隆(保留或省略)尾随换行符

标签 regex linux awk grep

我想过滤行,例如使用

grep -v keyword $file1 > $file2

但我希望输出文件具有与输入文件相同的“文件结尾”情况,即如果 file1 包含尾随换行符,则 file2 也应包含尾随换行符,只有这样。

如上所述使用“grep”,即使 file1 不包含尾随换行符,file2 也始终包含尾随换行符。

最佳答案

使用适用于 RT 的 GNU awk:

$ cat with_nl
a
x keyword y
c
$
$ cat without_nl
a
x keyword y
c$
$
$ awk '{ORS=RT} !/keyword/' with_nl
a
c
$ awk '{ORS=RT} !/keyword/' without_nl
a
c$

关于regex - Linux grep/awk : Filter lines in a file, 但在 EOF 处克隆(保留或省略)尾随换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30424919/

相关文章:

regex - 双空格后停止正则表达式捕获

c# - 在字符串中间匹配锚定正则表达式的快速方法

JavaScript 正则表达式帮助

linux - SSH 隧道到 docker 容器

bash - 如何在 awk 脚本中使用 shell 变量?

bash - 使用 awk 或 sed 基于无关列创建新行

python - 如何从 python 中的输入大文件中解析/提取特定值?

linux - Perl 中的标量 - 可以在整个脚本中导出它们吗

linux - 如何在虚拟机上将 Jboss 作为守护进程运行?

包含反引号的 Linux 管道数据