Awk

如何在 tcl 腳本中使用“awk”?

  • June 18, 2020

這可能是微不足道的,但我在將 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 中,單詞在空格上分割,因此任何帶有空格的文字或字元串都應該被引用。有兩種引用字元串的方法。帶大括號和引號。

用大括號引用時,不執行替換。嵌入的大括號可以用反斜杠轉義,但請注意反斜杠是字元串的一部分。

使用雙引號引用時,會處理命令、反斜杠和變數替換。


或者你也可以用 Tcl 語言做所有事情

引用自:https://unix.stackexchange.com/questions/593342