小编典典

在同一行的特定单词之后提取一个单词

linux

如何提取Linux(csh)中特定单词之后的单词?更确切地说,我有一个文件,其中只有一行看起来像这样:

_[some useless data]_ --pe_cnt **100** --rd_cnt 1000 _[some more data]_

我想提取单词 100 后面的数字--pe_cnt。我不能使用sed,因为仅当您要提取整行时才可以使用sed。也许我可以使用awk?

另外,我有多个具有不同值的文件,100所以我需要一些提取值但不依赖于值的文件。


阅读 294

收藏
2020-06-02

共1个答案

小编典典

awk

awk '{for(i=1;i<=NF;i++) if ($i=="--pe_cnt") print $(i+1)}' inputFile

基本上循环遍历该行的每个单词。当您找到要查找的第一个单词时,抓住下一个单词并打印出来。

grep

grep -oP "(?<=--pe_cnt )[^ ]+" inputFile
2020-06-02