我有以下文件:(文件名为的样本文件:2015_09_22_processedPartnumList.txt,位置:/ a / b / c / itemreport)
DataLoader_trace_2015_09_22_02_01_32.0956.log:INFO: 2015-09-22
Data Processing Starts : 12345678
我只想在文件/ a / b / c / d / ids _ {{1}中获取上述文件中的所有id,即12345678 ....(每个id在一个单独的行中,而不是以逗号分隔) }的.log
我编写了以下脚本,但我得到的文件是空的。没有任何例外或任何事情。所以,我很难识别错误。请告诉我脚本中有什么问题。
date +%d_%m_%Y_%H_%M_%S
在PCRE中实现grep后,我得到了这个,并没有将任何ID复制到新文件中。
答案 0 :(得分:0)
如果grep
支持PCRE,您可以执行以下操作:
grep -Po '.*:\s\K\d+$' /a/b/c/itemreport/2015_09_22_processedPartnumList.txt \
>/apps/feeds/out/catalog/ItemPartnumbers_"$(date '+%d_%m_%Y_%H_%M_%S')".log
.*:\s
将匹配:
之后的空格,\K
将丢弃该匹配
\d+$
将匹配我们所需的部分,即直到行尾的数字
示例:强>
% grep -Po '.*:\s\K\d+$' 2015_09_22_processedPartnumList.txt \
>ItemPartnumbers_"$(date '+%d_%m_%Y_%H_%M_%S')".log
% cat ItemPartnumbers_09_11_2015_11_30_49.log
13982787
14011550
13984790
13984791
14176509
14902623
14924193
14924194
13982787
46795670
46795671
答案 1 :(得分:0)
这不是一个很好的解决方案,但它正在发挥作用。
cat your\ file | cut -d ':' -f2-2 | tr -d INFO