Awk
如何在 tcl 腳本中使用“awk”?
這可能是微不足道的,但我在將 awk 用於簡單目的時遇到問題,例如使用 tcl 腳本在文件中列印第一行。我在 tcl 腳本中使用了以下命令:
awk '/manager/ {print $4}' sourcefile.txt
但它給出了錯誤:
extra characters after close braces
源文件.txt:
ajay manager account 45000 sunil clerk account 25000 varun manager sales 50000 amit manager account 47000 tarun peon sales 15000 deepak clerk sales 23000 sunil peon sales 13000 satvik director purchase 80000
我想列印包含搜尋字元串的行的特定列;這裡搜尋的字元串是“manager”,我想要的輸出是第 4 列,所以,所需的輸出:
45000 50000 47000
awk 命令在終端中執行良好;但是當我把它放在一個文件中時顯示錯誤,然後執行該文件。
我得到了解決方案。謝謝回答!
還有一個疑問,假設我將值“manager”儲存在變數“var”中。我想使用該變數進行搜尋:我可以使用它嗎?
awk {/$var/ {print $4}} sourcefile.txt
我無法找到方法。上面的命令沒有給我結果。
用大括號替換單引號,所以
awk {/manager/ {print $4}} sourcefile.txt
單引號字元 (’) 在 Tcl 語言中沒有特殊含義。這只是一個普通的角色。在 Tcl 中,單詞在空格上分割,因此任何帶有空格的文字或字元串都應該被引用。有兩種引用字元串的方法。帶大括號和引號。
用大括號引用時,不執行替換。嵌入的大括號可以用反斜杠轉義,但請注意反斜杠是字元串的一部分。
使用雙引號引用時,會處理命令、反斜杠和變數替換。