Awk 有没有一种方法可以不使用“变量”而使用该变量;“回声”;内;目瞪口呆;?

Awk 有没有一种方法可以不使用“变量”而使用该变量;“回声”;内;目瞪口呆;?,awk,Awk,如果变量的第4个字符是“6”或“7”,则会打印该行,但有没有办法将变量放入gawk的代码中并获得相同的结果? 有没有一种更聪明的方法可以只使用gawk来做下面的事情呢?你可以试试下面的方法吗,也可以用代码解决你的问题 UNIT="CCC62" echo $UNIT | gawk '{match($0,/(.){4}/,a)}{if (a[1] == 7 || a[1] == 6) print $0}' 说明:添加上述内容的详细说明 unit="CCC62&quo

如果变量的第4个字符是“6”或“7”,则会打印该行,但有没有办法将变量放入gawk的代码中并获得相同的结果?
有没有一种更聪明的方法可以只使用gawk来做下面的事情呢?

你可以试试下面的方法吗,也可以用代码解决你的问题

UNIT="CCC62"

echo $UNIT |
gawk '{match($0,/(.){4}/,a)}{if (a[1] == 7 || a[1] == 6) print $0}'
说明:添加上述内容的详细说明

unit="CCC62"
gawk -v var="$unit" 'BEGIN{split(var,a,"");if (a[4] == 7 || a[4] == 6) print var}'

谢谢你的帮助,很有魅力。开始学习gawk,这是一次旅行:)。改成一行。gawk-v var=“$unit”'开始{split(var,a,””);如果(a[4]==7 | | a[4]==6){print var}
unit="CCC62"                      ##shell variable
gawk -v var="$unit" '             ##Starting gawk program and sending shell variable unit to awk variable var here -v is ideal way of doing so.
BEGIN{                            ##Since there is NO Input_file so work will be done within BEGIN section only.
                                  ##Which works without mentioning Input_file name too.
  split(var,a,"")                 ##Splitting var into array a with separator of NULL.
  if(a[4] == 7 || a[4] == 6){     ##Checking condition if 4th element of a is either 7 or  6 if yes then do following.
    print var                     ##printing value of var here.
  }
}'