awkを使用して、名前と姓の間にあるスペースを文字列から削除するにはどうすればよいですか?ほとんどの例は、コマンドラインからawkにデータをリダイレクトすることに関するものですが、awkスクリプト内の文字列を操作する必要があります。
これを変換します:
"steve john"
に:
"stevejohn"
awkスクリプト内に入力するようにユーザーに依頼した文字列変数があります。スペースを削除する必要があります。
awkを使用して、名前と姓の間にあるスペースを文字列から削除するにはどうすればよいですか?ほとんどの例は、コマンドラインからawkにデータをリダイレクトすることに関するものですが、awkスクリプト内の文字列を操作する必要があります。
これを変換します:
"steve john"
に:
"stevejohn"
awkスクリプト内に入力するようにユーザーに依頼した文字列変数があります。スペースを削除する必要があります。
gsub
あなたの友達です。次のコマンドは、基本的に、正規表現 (この場合は 1 つのスペース) のグローバルな置換を行い、ターゲット$0
(行全体) で空の文字列に置き換えます。
pax> echo "steve john" | awk '{ gsub (" ", "", $0); print}'
stevejohn
ユーザーによる 1 つの入力を含め、任意のターゲットを使用できます。
pax> awk 'BEGIN {getline xyzzy ; gsub(" ","", xyzzy) ; print xyzzy}'
hello there my name is pax
hellotheremynameispax
使用sed
:
$ echo "steve john" | sed 's/ //g'
stevejohn
を使用する必要がある場合は、次awk
のようにします。
$ echo "steve john" | gawk '{print $1 $2}'
stevejohn
編集:
bash スクリプト内では、次のことができます。
s="steve john" # user input
t=$(echo $s | gawk '{print $1 $2}')
echo $t
echo "john smith aaa " |\
awk 'BEGIN {FS=" "; OFS=""} {for(i=1;i<=NF;++i) {out = out OFS $i}} END {print out;}'