如何使用sed命令使用正则表达式过滤文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用sed命令使用正则表达式过滤文件?相关的知识,希望对你有一定的参考价值。
谁能告诉我这两个命令有什么作用?
sed -i 's!{[^{]*;}! !' file.txt
sed -i 's!{[^{]*{! !' file.txt
我找到了这个例子,我无法弄清楚运行代码时提供的结果。
答案
sed -i 's!{[^{]*;}! !' file.txt
- sed -i表示就位,file.txt可能会被更改。
- 的!....!....!“替换命令,用感叹号拆分。大多数情况下你会看到使用斜杠,但是sed接受不同的字符,由第一个字符定义,在s之后。请注意,感叹号会在shell中产生问题。由于没有斜线,无论是图案还是替换,我都没有理由使用它们。
- 要匹配的{[^ {] * ;}模式
- ''替换最终是一个空白,如果小心转移,但可能是一个标签或时髦的半空间或其他东西。
现在复杂的表达是什么:
- {[^ {] * ;}一对包含......的文字大括号
- [^ {]一个否定组,否定是第一个字符是'^',所以任何不是开口,大括号,然后是
- 量词*,表示任意数字,包括0,后跟
- 退格,这是一种经常使用的掩蔽工具。
- 和分号。
所以
- '{aaaaa;}'应匹配
- '{a;}'应匹配
- '{;}'应匹配
- '{};}'应匹配
- '{{;}'不匹配
- '{a}'不应该匹配
- '{a}'不应该匹配
以上是关于如何使用sed命令使用正则表达式过滤文件?的主要内容,如果未能解决你的问题,请参考以下文章