我有一个文本文件。该文件包括如下字符和数字:
ANKR00TUR_R_20183240000_01D_30S_MO.rnx: 2018 11 20 00 00 0.0000000 GPS TIME OF FIRST OBS
brmu3350.14o: 2014 12 1 0 0 0.0000000 GPS TIME OF FIRST OBS
KNY12040.14o: 2014 7 23 0 0 0.0000000 GPS TIME OF FIRST OBS
rinex_quantity:grep "TIME OF FIRST OBS" * > time_of_first_epochs
我只需要提取 4 位数字并将它们存储到另一个文件中,如下所示:
2018
2014
2014
我应用了以下代码,但它提取了所有 4 位数字:
grep -Po "\d{4}" data
2018
3240
2018
0000
3350
2014
0000
1204
2014
0000
您的
grep
命令几乎是正确的,您只需要锚定模式以匹配只有在它之前或之后有单词边界的情况下。单词边界是在单词字符(字母、数字、下划线)和非单词字符(例如空格、其他标点符号、行尾和其他所有内容)之间匹配的零长度模式。
在
grep
中,您可以通过用 包围您的模式来做到这一点\b
,或者使用-w
开关来启用单词匹配:与米勒(http://johnkerl.org/miller/doc)是
作为输出,您将拥有
小米输入是
我只是用 cut 提取了第二列