我正在尝试使用 bash 脚本循环 awk 命令,但我很难在 awk 命令的单引号内包含一个变量。我在想我应该完全用 awk 来做这件事,但我现在对 bash 感觉更舒服。
#!/bin/bash
index="1"
while [ $index -le 13 ]
do
awk "'"/^$index/ {print}"'" text.txt
done
最佳答案
使用标准方法 -- awk
的 -v
选项来设置/传递变量:
awk -v idx="$index" '$0 ~ "^"idx' text.txt
在这里,我将变量 idx
设置为具有 shell 变量 $index
的值。在 awk
中,我只是将 idx
用作 awk
变量。
$0 ~ "^"idx
如果记录以 (^
) 开头,无论变量 idx
包含什么,都匹配;如果是,打印记录。
关于linux - 在 Bash 中使用 awk 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44689972/