我正在尝试从文本文件中提取一些数据。我使用的函数(作为 grep )提取整行作为答案,但我需要将文本行的特定部分提取到另一个文件中。
例如:一个文本文件包含:“周二 - 我去跑步周三 - 我去 5th AVE 的 GYM”
我希望寻找我在星期三去哪里(例如使用 grep ),但只提取“我去健身房”部分并将其定向到一个新文件
我正在尝试从文本文件中提取一些数据。我使用的函数(作为 grep )提取整行作为答案,但我需要将文本行的特定部分提取到另一个文件中。
例如:一个文本文件包含:“周二 - 我去跑步周三 - 我去 5th AVE 的 GYM”
我希望寻找我在星期三去哪里(例如使用 grep ),但只提取“我去健身房”部分并将其定向到一个新文件
您需要使用
-o
标志(仅)仅导出所需的文本和正则表达式以匹配“我去”之后的变量文本。所以,在你的情况下,命令是cat text| grep -o "I go to the [aA-zZ]*
where
grep -o
仅匹配所需的文本,而正则表达式[aA-zZ]*
匹配之后的任何单个单词。如果要过滤不同的日期,可以在中间添加另一个 grep,例如
cat text| grep "Wed" | grep -o "I go to the [aA-zZ]*
有关 grep 中正则表达式的简单指南,请参见 初学者指南-gnu-grep-basics-regular-expressions/