awkスクリプトから2つのデータをフォーマットしようとしています。ここに私の生データの一部ですawkを使用してファイルをフォーマットする
Mike:James:314849866:[email protected]:5059358554:NM:8830:Johnson:Rd:Albuquerque:87122
このように合計9行あります。私は電話番号、(505)935から8554のような5行目をフォーマットしたい
cat rawadd | awk -F: ' NR == 1,NR == 9 {print $1 " " $2 ", " $3 "\n" $7 " " $8 " " $9 "\n" $10 ", " $6 " " $11 "\n" $4 "\n" $5
:私はこのコードを使用してこのようにし
Mike James, 314849866
8830 Johnson Rd
Albuquerque, NM 87122
[email protected]
5059358554
それをフォーマットしました。そこで私は新しい変数$ telを作成し、それをrawaddファイルから抽出した$ 5変数に置き換えました。
tel=`"(${5:0:3}) ${5:3:3}-${5:6:4}"`
cat rawadd | awk -F: ' NR == 1,NR == 9 {print $1 " " $2 ", " $3 "\n" $7 " " $8 " " $9 "\n" $10 ", " $6 " " $11 "\n" $4 "\n" $tel "\n"}';
しかし、私の出力は、それだけで、実際のライン入力を出力5行目では、この
Mike James, 314849866
8830 Johnson Rd
Albuquerque, NM 87122
[email protected]
Mike:James:314849866:[email protected]:5059358554:NM:8830:Johnson:Rd:Albuquerque:87122
のように出てくる、とされていません。ここで
は、新しいコードは次のようになりますフォーマットされた電話番号。私はフォーマットをawkコマンドに直接追加することを望んでいましたが、方法を理解することはできません。私はまた、最初の行のId番号を314-84-9866に書式化したいと思います。どんな助けも素晴らしいだろう。
はここ
あなたの '$ tel'変数は' awk'には表示されません。一重引用符内にあります。bash変数は代用されません。コード化された方法がawkでうまくいかないように見えていました。その代わりに、 ''(substr($ 5,1,3) ")" .. etc'を 'awk'スクリプトで使用する必要があります。 – karakfa
Google UUOCで、 'cat rawadd'がどのような値を追加しているのかを考えてみましょう。 –