0

区切られたコンテンツを抽出し、'[ ]'シェル スクリプトを使用して比較するには、多くの困難があります。その後、他のフィールドを で消去する必要があります[]

ファイル名が一部のパターンを含むファイルを受け取りまし[xxxx]た。そのうちの 1 つは有用であり、それらを分類するために使用します。

一例:

Input: sample[t.225][lb.445][21042013][0913605].extension
Output (pattern lb.445): sample[lb.445].extension

パターンでgrepを使用できることは知っていますが、その後、ファイル名の他のフィールドを消去する方法がわかりません。grep を使用する戦略は最適なオプションではなく、ループを使用するオプションは、シェル スクリプトとパターンの比較では非常に奇妙に聞こえます。

4

1 に答える 1

1

この場合、 awk が役立つ場合があります。

awk -F'[][]' '{print $1"["$4"]"$NF}' input

[...]上記の行は、2 番目のブロックからテキストを取得します

あなたの質問の例を見てください:

kent$  echo "sample[t.225][lb.445][21042013][0913605].extension"|awk -F'[][]' '{print $1"["$4"]"$NF}'                                                                       
sample[lb.445].extension
于 2013-04-22T21:38:50.137 に答える