シェルスクリプト:一致するものが見つかったら、ファイルから文字列の一部を抽出します。

シェルスクリプト:一致するものが見つかったら、ファイルから文字列の一部を抽出します。

ファイルから文字列値を抽出して返すには、スクリプトを作成する必要があります。これは、指定されたパターンに一致する項目がファイルに見つかった場合にのみ実行する必要があります。

例:

"id":"re454sv:57ghg34sfw:87wre56:rty4598gh" 

テキストは大容量ログファイルのサブセクションであり、このような状況が発生する可能性があります"id":"some value"。そのディレクトリ内の多くのファイルから毎回「一部の値」部分を返す必要があります。

Unixのユーティリティはここで役に立つと思いますsedが、正確な使い方はわかりません。誰でも助けてくれて嬉しいです。

ベストアンサー1

:最初の区切られた値だけが必要なのか、マーカーの後の残りの行全体が必要なのかはわかりません"id"

前者は次のとおりです

sed -nre 's/^"id":"([^:]*):.*/\1/p' <file>

後者は次のとおりです。

sed -nre 's/^"id":(.*)/\1/p' <file>

スイッチが重要であることに注意してください。-n何も印刷しないでください(p一致する行は最後に印刷されます)。-r括弧などの項目をエスケープする必要がないように、拡張正規表現解析を有効にします。

おすすめ記事