2つの異なる一致の間でテキストを抽出する

2つの異なる一致の間でテキストを抽出する

特定の最初の項目(_と-)の間のテキストを抽出しようとしています。たとえば、下から数字5を取得する必要があります。

MQSeriesRuntime_5-U200491-7.5.0-4.x86_64

awkフィールド区切り文字(awk -F)を試しましたが、_の後に全文が表示されました。

ベストアンサー1

フィールド区切り記号を使用して創造性を発揮します。

$ awk 'BEGIN {FS="_|-"} {print $2}' input
5

秘訣はFS文字列ではないということです。これは正規表現です。

お客様のご要望に応じて、以下で詳しく説明します。

スクリプトは、着信データが処理される前に実行される awkコードブロックを定義できます。BEGIN

FSこのコードブロックを使用して、正規表現をハイフン()またはアンダースコア()として使用してフィールド-区切り文字()を定義します_

次のコードブロックは、探しているフィールドである{print $2}2番目のフィールド(つまり、前の区切り文字で区切られた2番目の文字列)を印刷します。プレフィックスのないコードブロックは、読み取った各レコードに対して実行されます。/-|_/5awk

おすすめ記事