【发布时间】:2020-06-21 00:39:28
【问题描述】:
这可能是微不足道的,但我在将 awk 用于简单目的时遇到问题,例如使用 tcl 脚本在文件中打印行。 我有变量 var :
set var manager
源文件.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
我想将命令放入 tcl 脚本 (awk/grep) 中,该脚本使用变量 var 在源文件中搜索字符串,然后打印包含该字符串的行的第 4 列。 我不想直接搜索经理,而是使用 var 。 我用过:
awk -v pat="$var" {$2 ~ pat {print $4 }} sorcefile.txt
但它给了我错误提示
awk: 'pat' argument to '-v' not in var=value form
也在 tcl 脚本中:
awk '/manager/ {print $4}' sourcefile.txt
给出错误,并且
awk {/manager/ {print $4}} sourcefile.txt
效果很好 所以,需要的输出:
45000
50000
47000
我需要把命令放到一个文件里面,然后执行这个文件。
【问题讨论】:
-
哪个错误?
awk ... { $2 ~ pat {print $4 }}是什么语法?请使用 shellcheck.net 解决明显的问题。 -
先生,这不起作用;显示无法读取文件 pat
-
它显示的 () 位置不正确