簡體   English   中英

Ubuntu終端中的AWK命令出錯

[英]Error with AWK command in ubuntu terminal

我也是linux和AWK的新手。 我的主文件夾中有一個文件testing.txt ,我正在嘗試使用以下awk命令讀取該文件:

**arjun@arjun-Aspire-4741:~$ awk ´{print $1}´ testing.txt¨**   

我得到這個作為輸出

**¨awk: ´{print
awk: ^ invalid char '�' in expression
arjun@arjun-Aspire-4741:~$ ¨**

問題是您使用了向前的報價而不是引號(在這種情況下,僅使用單引號是合適的):

awk '{print $1}' testing.txt

代替

awk ´{print $1}´ testing.txt

在shell中,雙引號"字符串可以包含具有特殊含義的表達式(例如反引號,變量),這些表達式將在作為完整shell命令的一部分處理該字符串之前進行擴展。單引號'中的字符串已完全轉義;將其括起來換句話說,字符串在字面上沒有任何解釋地傳遞,這就是為什么在編寫awk腳本時應使用單引號,因為awk變量解引用運算符$與shell中的相同,沒有其他有效的字符串定界字符*。

我最初以為您使用了反引號(感謝Andras Deak發現我的錯誤)。 反引號在shell中有特殊含義(相當於在$(...)包裝內容):將該字符串作為命令執行,並對其輸出求值(stdout)。 這是執行主命令之前完成的。

所以,如果我這樣做

cat `echo myfile`

這變成

cat myfile

然后執行。

您可以在幾個地方閱讀更多有關shell行為的信息:

*忽略空格在技術上也是字符串定界符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM