我有“exp regex”行的文件。该文件可以包含带有其他文本的行。例如:
exp [a-zA-Z].*\.sh~$
exp test
tmp too
exp tmp
trololo
我需要 grep 这个文件的内容,egrep file '^exp ' | sed 's/^exp //'
结果是:
[a-zA-Z].*\.sh~$
test
tmp
但我需要这个 grep 结果用 | 分隔 而不是 \n
[a-zA-Z].*\.sh~$|test|tmp
因为我需要将此结果用作另一个 grep 正则表达式。例如打印嵌套 grep 匹配的文件:
ls | egrep "`egrep file '^exp ' | sed 's/^exp //'\`"
嵌套 grep 后 | sed 替换
ls | egrep "[a-zA-Z].*\.sh~$|test|tmp"
或者有没有更好的方法从文件中导出正则表达式并将它们用于过滤文件?
肯特:我如何在替代中使用它?我认为是:
ls | egrep "`awk '/^exp /{sub(/^exp /,"");s=(s?s"|":s) sprintf("%s",$0)}END{print s}' file`"
但我可能错了。