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

我想將它移植到awk中。
1另存爲format.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 

爲什麼,以及如何解決它?

很容易翻譯整個文件與貓文件| tr [az] [AZ],還有很多其他的工作要做awk,所以有必要在awk中一行一行地翻譯行,其他任務中省略。

+4

AWK是不是一個空殼,這是一種編程語言。你可以用awk做到這一點,但這不是awk的語法。如果你想讓這個文本更高,使用'toupper()':'echo qwerty | awk'{print toupper($ 0)}''。 –

+0

順便說一句,如果您使用Bash 4.0或更高版本,您可以:'echo $ {x ^^}'。 –

回答

2

不能調用tr這樣的:

你可以做這樣的事情:

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

還是在awk更好的做到這一點完全:

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

偶'awk'{print toupper($ 0)}''文件 – RomanPerekhrest

+0

是的,我知道。我設置了一個變量,因爲OP似乎更像'toupper' – anubhava

相關問題