将包含特定文本的行从一个文件复制到另一个文件

时间:2018-03-07 02:49:34

标签: regex linux bash awk

我想将包含self.x的文件(c.x)中的所有行复制到另一个文件(file1.txt

Cmd:[41]

此命令似乎不起作用。 file2.txt的大小为0.但awk '/Cmd:[41]/' file1.txt > file2.txt 中的行包含 file2.txt

我应该使用一些特定的file1.txt转义字符。问题出在Cmd:[41]部分。搜索字符串的另一部分似乎工作正常。

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式更改命令,它将起作用:

awk '/Cmd:\[41\]/' file1.txt > file2.txt

<强>说明:

'/Cmd:[41]/'会匹配包含以下内容的行:Cmd:4Cmd:1,但不会匹配字面为Cmd:[41]的行,因为[...]在正则表达式中用于定义可以匹配的字符范围字符列表因此您需要在它们之前添加\来转义它们。