如何从bash中的文件中提取特定行?

时间:2012-09-19 10:52:19

标签: shell

我想从一个以shell脚本中的文件中的特定模式开头的行中提取字符串。

例如:我想要以hello开头的行中的字符串:

hi to_RAm
hello to_Hari
hello to_kumar
bye to_lilly

输出应该是

to_Hari
to_kumar

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

使用grep:

  grep ^hello file | awk '{print $2}'

^用于匹配以“hello”开头的行。这假设您要打印第二个单词。

如果要打印除第一个以外的所有单词:

 grep ^hello file | awk '{$1=""; print $0}'

答案 1 :(得分:1)

sed是最合适的工具:

sed -n 's/^hello //p' 

答案 2 :(得分:1)

您可以使用GNU grep的perl兼容正则表达式并使用lookbehind:

grep -oP '(?<=hello ).*'