次のテキスト行があるとしましょう。
#cat numbers.txt
Numbers!!!! John=55 May=43 RandomData Alex=72 Ben=90 End
しかし、私はジョンの電話番号だけに興味があります。他の不要なアイテムをすべて削除して出力を次のように置き換えるにはどうすればよいですか?
#cat numbers.txt | <some command line magic>
John=55
注:テキストファイル内の「John」がどこにあるのか、Johnにどの番号が割り当てられているのかわかりません。
答え1
私はそれをします:
awk '{ print $2 }' numbers
John=55
ただし、必要な情報は常に2番目のフィールドにあります。
編集する:~によるとあなたの編集してください。ファイル内のJohnがどこにあるのかわからないので、次のようにします。
egrep -o 'John=[0-9]{2}' numbers
John=55
答え2
John =と次のスペース区切り文字の間に何があるかを望む場合(数字に制限はなく、事前に知る必要はありません)
grep -Po 'John=\K.*?(?= )' numbers