使用此命令,我可以"在每行之前添加.
awk '{print "\""$0}' file
Run Code Online (Sandbox Code Playgroud)
但我想添加'而不是",为什么这个命令不起作用?
awk '{print "\'"$0}' file
Run Code Online (Sandbox Code Playgroud)
你绝对不能在单引号分隔的脚本中使用单引号,因为该引号绝对表示该脚本[segment]的结尾.你有的选择是:
{print "'"$0}然后执行:awk -f foo file,或\047任何想要打印引号的地方使用转义序列:awk '{print "\047"$0}' file,或awk -v q=\' '{print q$0}' file,或awk '{print "'\''"$0}' file上面的最后一个列表项实际上是两个独立的awk脚本段('{print "'和'"$0}'),中间有一些shell(\'),所以当最终结果是连接时,shell将它们传递给awk命令执行,你得到你想要的.
FWIW我使用"1"如果你的脚本超过几行,"2"或"3",否则"3"是我个人的偏好而是YMMV.我不会做4或5.