パターンマッチング後に単語を抽出する方法

パターンマッチング後に単語を抽出する方法

入力.txt

abc1 abc2 {"request":{"jjj":"opt1"},"user":{"name":"abc5"}}
xyz1 xyz2 {"request":{"xyz3":{"xyz4":{"xyz5":"xyz6"}},"jjj":"opt2"}}
ghi1 ghi2 {"request":{"ghi3":{"ghi4":{"ghi5":"ghi6"}},"jjj":"opt3"},"user":{"ghi7":"value"}}

最初の2つのフィールドに一致する文字列の後の単語を出力する必要があります。jjj

abc1 abc2 opt1
xyz1 xyz2 opt2
aaa1 aaa2 opt3

ベストアンサー1

アクセス権がある場合は、sed正規表現を使用して3番目の列から必要な部分を抽出し、残りは変更せずに残すことができます。

sed 's/{.*"jjj":"\([^"]*\).*$/\1/g' input.txt

私のinput.txtファイルには以下が含まれます。

abc1 abc2 {"abc3":{"jjj":"opt1"}}
xyz1 xyz2 {"xyz3":{"jjj":"opt2"}}
aaa1 aaa2 {"aaa3":{"aaa4:"jjkk"},.....{"jjj":"opt3"}}

"jjj":"ここでは、次の閉じる二重引用符の前後の二重引用符の値をキャプチャしようとしています。

おすすめ記事