regex - .awk 正则表达式中的转义字符

标签 regex awk escaping

我不太明白 .awk 脚本中的转义字符是如何工作的。

我想读取的文件中有这一行:

 #Name Surname City Company State Probability Units Price Amount

如果我只是写:

awk < test.txt '/\#/ {print $1}'

在命令行中,一切正常,输出为#Name。

但是,如果我尝试按以下方式在 .awk 文件中执行相同操作:

/\#/ {print $1};

我没有得到任何输出。此外,出于某种原因,gEdit 不会将“\”识别为 .awk 中的转义字符。

为什么会发生这种情况?有解决方法吗?

最佳答案

这对我有用,而且您也不需要转义 # 因为它不是具有特殊含义的字符。

(my.awk) 内容:

/#/ {print $1};

然后使用 awk 执行它翻译:

hwnd@lsh1001:~$ awk -f my.awk test.txt
#Name

关于regex - .awk 正则表达式中的转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24768747/

相关文章:

linux - 在 Unix 中分离 Awk 输入

php - 在包含 PHP 变量的 HTML 字符串中转义引号的正确方法

c++ - 在字 rune 字中转义撇号

python - 在正则表达式匹配中插入字符串

regex - 正则表达式替换为sed

linux - 如何在csv中将列的所有数据放在一行中

regex - Linux 解析输出并合并行

javascript - 使用 Javascript 和 Regex 替换 HTML 字符

java - 字符串数组的 String.Split() 第二个值未保存到新变量

正则表达式位置不敏感