我找到了这个命令。如果某一行有感兴趣的单词,该命令将输出整行:
temp="sample"
awk -F " " -v var="$temp" '$1 == var' /root/smaple.txt
smaple.txt
包含:
sample demo 123 456
sample2 demo2 567 345
sample3 demo4 453 456
现在我想检查一下二值,即如果这两个值在一行中,则命令将输出该行:
temp1="sample"
temp2="123"
awk -F " " -v var="$temp1" var2="$temp2" '$1 == temp1 && $3 == temp2' /root/smaple.txt
我的命令的预期输出:
sample demo 123 456
但它不起作用。
答案1
您混淆了变量的名称:
temp1="sample"
temp2="123"
awk -v temp1="$temp1" -v temp2="$temp2" '$1==temp1 && $3==temp2' file
当您需要多个变量时,也-v
必须多次使用该参数。
答案2
尝试一次
awk -F " " -v 'var="$temp1" var2="$temp2"' '$1 == var && $3 == var2' /root/smaple.txt
你正在与价值进行比较