使用/删除文本文件中包含特定字符串的行

时间:2019-08-30 02:00:24

标签: linux bash text sed

我有一个文本文件,其日期格式为:27/8/2019 我想删除除包含27/8/2019的行以外的所有行

如果我使用sed,那就是:

sed -i '/pattern/!d' file.txt

问题是当我使用'/'模式时,会出现下一个错误:

sed: -e expression #1, char 5: unknown command: `8'

2 个答案:

答案 0 :(得分:2)

转义斜线:

sed -i '/27\/8\/2019/!d' file.txt

答案 1 :(得分:0)

使用awk

awk '/27\/8\/2019/' file.txt

如果日期只是一个示例,请使用它保留所有日期行:

awk '/[0-9]+\/[0-9]+\/[0-9]+/' file.txt

使用awk内联更新文件

awk '-your code-' file.txt > tmp && mv tmp file.txt