2017-04-03 14 views
-1
x="qwerty" 
x=$(echo $x | tr [a-z] [A-Z]); 
echo $x 
QWERTY 

私はそれをawkに移植したいと思っています。 bashからawkにコマンドを移植できないのはなぜですか?

#! /usr/bin/awk 
{ 
x=$(echo -n $0 | tr [a-z] [A-Z]) 
print $x 
} 

2のawk -f format.awkファイル

awk: format.awk: line 3: syntax error at or near tr 

なぜ、どのようにそれを修正するなどformat.awk

を保存する
1?

猫のファイルとファイル全体を翻訳することは容易である| TR [AZ] [AZ]、awkの中で行うには、他の多くの作品がありますので、行にawkでは一つ一つを変換する必要がある、他のタスク卑猥なあなたはこのような何か行うことができます

awk '{print | "tr \"[a-z]\" \"[A-Z]\""}' file 

するか、より良いとしてawkで完全にそれを行う:

+4

awkはシェルではありません、それはプログラミング言語です。あなたはawkでそれを行うことができますが、それはawkの構文ではありません。そのテキストを上にしたい場合は、 'toupper()'を使ってください: 'echo qwerty | awk '{print toupper($ 0)}' '。 –

+0

Btw、もしあなたがBash 4.0以上を使っているのなら、あなたは単に 'echo $ {x ^^}'とすることができます。 –

答えて

2

あなたはこのようなtrを呼び出すことはできません

awk '{line = toupper($0); print line}' file 
+1

でも 'awk '{print toupper($ 0)}'ファイル – RomanPerekhrest

+0

はい私は知っています。私は変数が設定されています。なぜなら、OPは、 – anubhava

関連する問題