Sed/Grep/...でコロンの前のすべての内容をどのように含めますか?

Sed/Grep/...でコロンの前のすべての内容をどのように含めますか?

パスワード

sed -n 's/.*tex:/[preventColonFromResult]/p' ./BitTorrentSync/Gyn/1.12.2015.tex:  Agents in young <40yr?

どこ

  • 入力はです./BitTorrentSync/Gyn/1.12.2015.tex: Agents in young <40yr?
  • 予想される出力はです./BitTorrentSync/Gyn/1.12.2015.tex

-n出力をに渡したいのでここでは意味がないと思います。less一致を検索しましたが、実際には結果に.*tex:含めないでください。最終的に交換しないオプションが:あります。p

DonCristiの出力grep

://シードなしgrepでコロンで分割してみてください... GNU Grep 2.23のコードsedgrep

find . -name "*.tex" -exec ggrep -i -oP '^[^:]*(?=:)' {} \; | less

出力に失敗すると、ファイル名ではなくファイルの内容が出力されます。このコマンドは実際にはファイルの内容のみを含み、ファイル名は無視します。


:SED / Grep / ...でコロンの前のすべてのアイテムをどのようにインポートしますか?

ベストアンサー1

  1. sed引数ではなくstdinで動作、ファイル名を指定しない限り。
  2. 保持するアイテムよりも削除するアイテムを指定する方が簡単ですsed

変える

sed -n 's/.*tex:/[preventColonFromResult]/p' ./BitTorrentSync/Gyn/1.12.2015.tex:  Agents in young <40yr?

おそらくあなたは

printf '%s\n' './BitTorrentSync/Gyn/1.12.2015.tex:  Agents in young <40yr?' | sed 's/:.*//'

ただし、この特定のユースケースでは、次の単一目的ツールを使用することもできますcut

printf '%s\n' './BitTorrentSync/Gyn/1.12.2015.tex:  Agents in young <40yr?' | cut -d: -f1

おすすめ記事