我正在编写一个shell脚本,其中包含几行awk
awk行看起来像:
cat input.csv | awk -F, '$1~/$1/ {print "is good"}'
Run Code Online (Sandbox Code Playgroud)
第一$1是输入CSV的第一列,第二个$1被认为是这个外壳脚本的第一命令行输入
我试图把\第二个放在前面$,但它似乎无法正常工作.
有人可以帮忙吗?
cat input.csv | awk -F, '$1~/'"$1"'/ {print "is good"}'
Run Code Online (Sandbox Code Playgroud)
您需要关闭'字符串,插入shell $1(内部"以防有特殊字符),然后重新打开'字符串.
您可能想要检查$1来自shell的/字符是否包含会扰乱正则表达式的字符.
正如@Ignacio Vazquez-Abrams所说,你不需要输出cat到awk 的输出,你可以awk直接读取文件.那是:
cat input.csv | awk ...
Run Code Online (Sandbox Code Playgroud)
可以简化为:
awk ... < input.csv
Run Code Online (Sandbox Code Playgroud)
变量也很好。
awk -F, -v needle="$1" '$1 ~ needle {print "is good"}' < input.csv
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6219 次 |
| 最近记录: |