【发布时间】:2013-03-22 14:22:07
【问题描述】:
我正在使用 awk 重新格式化文件中的某些字段,并使用 awk 函数来修复一个字段值(如果它是负数)。这是我的 awk 命令:
awk 'function fix_neg(value) {\
if(value < 0)\
return '$new_value'\
else\
return value\
} END { print $2,$1,fix_neg($3) }' input_file.txt
$new_value 在此调用之前设置的位置。我不明白为什么这只返回重新格式化的 input_file.txt 的最后一行(其中包含多行数据)。
感谢您的帮助。
【问题讨论】:
-
除非您使用的是 C shell 衍生版本,否则反斜杠是不必要的。 shell 知道单引号字符串继续,因为它还没有看到第二个单引号。