awk - 不解析 -v 中的字符串
问题描述
如何告诉 awk 不要使用-v
选项解析变量赋值中的字符串:
$ awk -v s='\n' 'BEGIN {print "[" s "]"}'
[
]
它不解析以下
$ echo '\n' | awk '{print "[" $0 "]"}'
[\n]
$ awk 'BEGIN {print "[" ARGV[1] "]"}' '\n'
[\n]
$ s='\n' awk 'BEGIN {print "[" ENVIRON["s"] "]"}'
[\n]
并在下面解析
$ awk 'BEGIN {s = "\n"; print index(s, "n"), index(s, "\n")}'
0 1
解决方案
只需添加一个额外的反斜杠来转义反斜杠:
$ awk -v s='\\n' 'BEGIN {print "[" s "]"}'
[\n]
推荐阅读
- typescript - 在打字稿中定义 lambda 函数的问题
- c - 第二次输入密码无法进入
- python - ImportError:无法从“first_app”导入名称“Topic”
- visual-studio - 如何在 Visual Studio 中控制换行的缩进
- c - 将输入文件重定向到程序,只正确读取一个命令
- php - 为什么这个 PHP 数组在它为空时一直表现得好像这个键被设置了?
- html - 如何在表格中自动换行,同时具有不同的单元格宽度?
- deep-learning - PyTorch 中的参数特定学习率
- ios - 如何反转状态栏的深色和浅色内容以适应 Xcode 中的深色模式
- latex - Latex 中的错误我无法修复涉及多行和多列的问题