【发布时间】:2019-01-14 05:51:31
【问题描述】:
我有这样的文件
TT;12-11-18;text;abc;def;word
AA;12-11-18;tee;abc;def;gih;word
TA;12-11-18;teet abc;def;word
TT;12-11-18;tdd;abc;def;gih;jkl;word
我想要这样的输出
TT;12-11-18;text;abc;def;word
TA;12-11-18;teet abc;def;word
如果word 出现在日期12-11-18 之后的位置5,我想获得它。如果在第 6 位或第 7 位之后发现它,我不希望发生这种情况。位置计数从日期12-11-18开始
我想试试这个命令
cat file.txt|grep "word" -n1
这将打印与此模式word 匹配的所有匹配项。我应该如何解决我的问题?
【问题讨论】:
-
您的问题和建议的输出不符合要求。您声明您希望“单词”一词位于字段 5 字段中的行比匹配“12-11-18”的字段更远。您的第二行不符合此标准。
-
我只想要那些字段在第 5 位之后的行。我不想要它在第六或第七位置的那些行。如果我想在任何位置匹配单词,我会简单地使用
grep "word" file.txt命令 -
第五位怎么定义?例如。在您的预期输出中,您将
TT;12-11-18;text;abc;def;word其中word在字段6 中和12-11-18在字段2 中,所以这是4 位置。而在第二行,TA;12-11-18;teet abc;def;word则相差 3 个位置。还是您的意思是word应该在字段5中。在这种情况下,您的第二行不正确,因为它在字段 4 中。 -
样本输入的每一行都包含
word并且您的预期输出包括word未出现在位置 5 的行。您很难帮助您找到正确的解决方案。 -
抱歉,我的问题让您感到困惑。我在问题中提到我想要
word在它出现在日期的第 5 位之后。我从数据12-11-18开始计数。