【发布时间】:2018-06-12 09:16:09
【问题描述】:
file_data.txt
73|8|42.320000|1559260800000|1|9667|0.00|42.320000||1485613678440|
153|8|35.680000|1559260800000|1|10899|0.00|35.680000||1482480306523|
2503|8|93.390000|1559260800000|1|6106|0.00|93.390000||1484304241803|
2672|8|49.990000|1559260800000|1|7754|0.00|49.990000||1482064270543|
AWK_COMMANDS.txt
awk -F '|' '$2 == 3280 {print;}' file_data.txt
awk -F '|' '$2 == 3281 {print;}' file_data.txt
我在while循环下面运行
while read line
do
$line
done < AWK_COMMANDS.txt
我遇到错误
awk: cmd. line:1: '$2
awk: cmd. line:1: ^ invalid char ''' in expression
awk: cmd. line:1: '$2
awk: cmd. line:1: ^ invalid char ''' in expression
当我直接在控制台中执行相同的命令时,它可以工作。
我尝试转义和双引号。结果是一样的
【问题讨论】:
-
这是不可以的。
' '是扩展后的文字,而不是语法。 -
为什么不直接运行
bash AWK_COMMANDS.txt -
bash AWK_COMMANDS.txt工作。 -
mywiki.wooledge.org/BashFAQ/050 很好地了解(不)将命令放入变量中。
-
@Ashish,请问我的回答是否对您有帮助?
标签: linux bash shell awk scripting