Vah*_*ili 46 shell awk parameter-passing
我试图在awk中为文件的每一行运行一个shell命令,而shell命令需要一个输入参数.我试图使用system(),但它没有识别输入参数.
该文件的每一行都是一个文件的地址,我想运行一个命令来处理该文件.因此,对于一个简单的例子,我想对每一行使用'wc'命令并传递$1给wc.
awk '{system("wc $1")}' myfile
Run Code Online (Sandbox Code Playgroud)
Ken*_*ent 60
你很亲密 你必须连接命令行与awk变量:
awk '{system("wc "$1)}' myfile
Run Code Online (Sandbox Code Playgroud)
gle*_*man 41
你无法获取awk system()调用的输出,你只能获得退出状态.使用getline/pipe或getline/variable/pipe结构
awk '{
cmd = "your_command " $1
while (cmd | getline line) {
do_something_with(line)
}
close(cmd)
}' file
Run Code Online (Sandbox Code Playgroud)