我正在尝试从文本文件中提取一些数据。我使用的函数(如 grep )提取整行作为答案,但我需要将文本行的特定部分导出到另一个文件。
例如:一个文本文件包含:“星期二我去跑步,星期三我去第五大道的健身房”
我希望查找我星期三去的地方(例如使用 grep ),但只提取“我去健身房”部分并将其定向到新文件
答案1
您需要使用-o
标志 (only) 来仅导出所需文本,并使用正则表达式来匹配“I go to”后的变量文本。因此,在您的例子中,命令将是
cat text| grep -o "I go to the [aA-zZ]*
其中grep -o
仅匹配所需的文本并且正则表达式[aA-zZ]*
匹配其后的任何单个单词。
如果要过滤不同的日子,可以在中间添加另一个 grep,例如
cat text| grep "Wed" | grep -o "I go to the [aA-zZ]*
有关 grep 中正则表达式的简单指南,请参阅 初学者指南-gnu-grep-基础-正则表达式/