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

awk로 이식하고 싶습니다. 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 

파일로
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