簡體   English   中英

Grep或部分字符串

[英]Grep or in part of a string

大家好

文件名可以是

  1. abc_source_201501.csv或,
  2. abc_source2_201501.csv

是否可以執行grep abc_source|source2_201501.csv而沒有完整列出文件名,因為我正在使用的文件名比給出這兩個選項的示例長得多?

感謝您的協助。

在grep中使用擴展的正則表達式標志。

例如:

grep -E abc_source.?_201501.csv

會在您的示例中同時列出這兩行。 您可以想到其他更適合您數據的正則表達式模式。

您可以使用猛砸通配符一次在多個文件到grep。

例如,要在所有文件名以abc_source開頭並以201501.csv結尾的文件中grep字符串“ hello”,請發出以下命令:

grep hello abc_source*201501.csv

您也可以使用-r標志來遞歸grep給定文件夾下的所有文件-例如當前文件夾(。)。

grep -r hello .

如果您在外殼中詢問有關文件名匹配的模式,則Bash中的擴展globlobing工具可以讓您說

shopt -s extglob
grep stuff abc_source@(|2)_201501.csv

使用單個glob表達式搜索兩個文件。

最簡單的可能性是使用大括號擴展:

grep pattern abc_{source,source2}_201501.csv

完全相同:

grep pattern abc_source{,2}_201501.csv

您可以在一個單詞中使用多個大括號模式:

grep pattern abc_source{,2}_2015{01..04}.csv

擴展到

grep pattern abc_source_201501.csv abc_source_201502.csv \
             abc_source_201503.csv abc_source_201504.csv \
             abc_source2_201501.csv abc_source2_201502.csv \
             abc_source2_201503.csv abc_source2_201504.csv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM