【发布时间】:2016-08-24 09:15:43
【问题描述】:
我有一些 awk 可以重新排列一行。我想转义其中一个变量(例如 $_),这样" 和\ 用反斜杠转义。
例子:
echo "Ehm, \"hi\", he \\ said" | awk '{$1="" ; print "\"" $_ "\"" }'
" "hi", he \ said"
(不要更改回显,通常我从包含Ehm, "hi", he \ said 的文件中读取)。
我想拥有
" \"hi\", he \\ said"
相反。我怎样才能做到这一点? awk中有没有可以做到这一点的函数?
【问题讨论】:
-
在 awk 程序的上下文中,
$_是什么? -
@Tom 这意味着,剩下的行
-
正如this question 的回答中提到的,看起来
$_最终可以工作,因为_的计算结果为0,所以你最终得到$0。在 awk 脚本中看到$_并不常见。使用$0表示整行。 -
我认为你应该解耦
$1=""的部分,因为它会产生噪音。除非它是绝对必要的,否则这个问题会从中受益。另外,从您的更新看来,您只想在字符串中添加` to any"` 或 ``,最后不是这样吗? -
@fedorqui 您的评论没有很好地标记,因为我无法理解您写的内容