1

数行のテキストを含むドキュメントがあります。

例 (実際のものではありません):

*type='test'、user_id='099'、number='+66719919 のテーブルから 42 Locked delete を準備します*

ドキュメント内の任意の場所で user_id を検索して (パターンに従っていない)、次のように出力できるようにしたいと考えています。

user_id=009

また

009

awkを使用してこれを達成するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

1
awk '/user_id/{for(i=1;i<=NF;i++){if($i~/user_id/){split($i,a,"=");print a[2]}}}' your_file

テスト済み:

> echo "*Prepare type='test' and user_id='099' and number='+66719919*" | awk '/user_id/{for(i=1;i<=NF;i++){if($i~/user_id/){split($i,a,"=");print a[2]}}}'
'099'

別のもの:

> echo "*Prepare type='test' and user_id='099' and number='+66719919*" | awk '/user_id/{for(i=1;i<=NF;i++){if($i~/user_id/){ print $i}}}'
user_id='099'
于 2013-03-12T10:47:22.197 に答える
0

grep を使用することもできます。

grep -o "user_id='\?[0-9]*'\?"

追加trして引用符を削除します。

grep -o "user_id='\?[0-9]*'\?" | tr -d \'
于 2013-03-12T11:21:44.307 に答える