ksh - 搜索多个字符串并将行写入文件

时间:2015-06-15 20:17:03

标签: grep ksh

非常感谢任何帮助。我可以阅读代码并弄明白,但我无法从头开始编写。

我需要帮助启动一个ksh脚本,该脚本会在文件中搜索多个字符串,并将包含其中一个字符串的每一行写入输出文件。

如果我使用以下命令:

$ grep“搜索模式”文件>>输出文件

......这就是我想要的。但我需要搜索多个字符串,并按文件中列出的顺序写入输出。

再次......任何帮助都会很棒!提前谢谢!

3 个答案:

答案 0 :(得分:0)

查看正则表达式手册。您可以在搜索表达式中指定多个字符串,例如grep" John | Bill"

Man grep会教你很多关于正则表达式的内容,但有几个在线网站可供你试用,例如regex101和(更丰富多彩的)regexr

答案 1 :(得分:0)

有时你需要egrep。

egrep "first substring|second substring" file

如果你有很多子串,你可以先把它们放在变量中

findalot="first substring|second substring"
findalot="${findalot}|third substring"
findalot="${findalot}|find me too"
skipsome="notme"
skipsome="${skipsome}|dirty words"
egrep "${findalot}" file | egrep -v "${skipsome}"

答案 2 :(得分:0)

使用" -f"在grep。 在文件中写下你想要匹配的所有字符串(比如说pattern_file,字符串列表应该是每行一个) 并使用下面的grep

grep -f pattern_file file > output_file