awkを使用して文字列から名前と姓の間にあるスペースを削除するにはどうすればよいですか? ほとんどの例は、コマンドラインからawkへのデータのリダイレクトについてですが、awkスクリプト内の文字列を操作する必要があります。私はawkスクリプト内の入力をユーザーに尋ねた文字列変数を持ってawkで文字列から空白を削除する
"stevejohn"
:に
"steve john"
:
はこれを変換します。私はスペースを削除する必要があります。
awkを使用して文字列から名前と姓の間にあるスペースを削除するにはどうすればよいですか? ほとんどの例は、コマンドラインからawkへのデータのリダイレクトについてですが、awkスクリプト内の文字列を操作する必要があります。私はawkスクリプト内の入力をユーザーに尋ねた文字列変数を持ってawkで文字列から空白を削除する
"stevejohn"
:に
"steve john"
:
はこれを変換します。私はスペースを削除する必要があります。
gsub
はあなたの友人です。次のコマンドは、基本的に正規表現(この場合は1つのスペース)のグローバル置換を実行し、ターゲットの$0
(行全体)の空の文字列で置き換えます。
pax> echo "steve john" | awk '{ gsub (" ", "", $0); print}'
stevejohn
あなたはユーザーによって一つの入力を含む、任意のターゲットを使用することができます。
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
私はawkスクリプトの中に入力するようにユーザーに要求した文字列変数を持っています。スペースを削除する必要があります – femchi
私の編集した答えをご覧ください。 –
あなたの変数( "$ s"は$ sではない)を引用することを忘れないでください。そして、あなたは実際にbashでそれを行うための外部コマンドを呼び出さないでしょう、あなたはshell組み込み関数を使うでしょう:s = "steve john"; echo "$ {s //}" stevejohn –
echo "john smith aaa " |\
awk 'BEGIN {FS=" "; OFS=""} {for(i=1;i<=NF;++i) {out = out OFS $i}} END {print out;}'
または "sed"コマンドを使用できます。 sedは、入力から文字列を削除または置換するためによく使用されます。 – trillions
'awkのfilename' OR'エコー "HI GH" '{$ 1 $ 2を印刷}' | awk '{print $ 1 $ 2}' ' –
シェルスクリプトの作成に関する回答があれば、質問を編集して試した内容を含めてください。 –