我有一个看起来像这样的文本文件:
ErrorLog "|/usr/local/apache2/bin/rotatelogs /var/log/apache/error_log.%Y-%m 200M"
ErrorLog "/var/log/apache2/error_log"
我只需要过滤带有error_log一词的路径。 我需要输出为:
/var/log/apache2/error_log.%Y-%m
或者
/var/log/apache2/error_log
答案 0 :(得分:1)
grep
:
grep -o '[^[:space:]]*\<error_log\>[^[:space:]]*' file
[^[:space:]]*
- 匹配非空格字符\<
和\>
- 是字边界示例输出:
/var/log/apache/error_log.%Y-%m
"/var/log/apache2/error_log"
答案 1 :(得分:0)
grep
会做
$ grep -o '\S*error_log\S*' file
/var/log/apache/error_log.%Y-%m
"/var/log/apache2/error_log"
如果你想将它们拉到同一行并删除引号管道
... | tr -d '"' | xargs