最初のコロンペア内のテキストを抽出する方法

最初のコロンペア内のテキストを抽出する方法

tarからファイルを抽出できないたびに、このような行を保存するログファイルがあります。

tar: foto/201802131354184186718718.xml: No se puede efectuar open: File exists
tar: foto/201802131365468046840684.xml: No se puede efectuar open: File exists

最初のコロンのペア ":" 内にテキストをインポートする必要があります。

はい

foto/201802131354184186718718.xml
foto/201802131365468046840684.xml

grepを使ってみましたが、次のような結果が得られました。

$ grep -oP '\:\K[^\:]+' 20180213.tmp 
 foto/201802131354184186718718.xml
 No se puede efectuar open
 File exists
 foto/201802131365468046840684.xml
 No se puede efectuar open
 File exists

ベストアンサー1

まず、最も簡単な方法はcut -d: -f2 20180213.tmpawk -F: '{print $2}' 20180213.tmp

grepしかし、あなたのアプローチが失敗した理由も説明したいと思います。一致するからです。みんな:この問題を解決するには、正規表現の最初の項目を前に追加:して処理ラインの最初の項目と一致させることができます^[^\:]*。したがって、元の正規表現の前の文字は使用できません:。完全なコマンドは次のとおりです。

grep -oP '^[^\:]*\:\K[^\:]+' 20180213.tmp

:また、正規表現でエスケープする必要がないため、次のように単純化できます。

grep -oP '^[^:]*:\K[^:]+' 20180213.tmp

おすすめ記事