linux - 使用 awk 忽略双引号

标签 linux shell awk

我在 awk 中有以下代码

awk -F"[.: ]" '/Backing up \"/1/2\" on One/ {start = mktime($3" "$2" "$1" "$4" "$5" "$6); hms = sprintf("%s:%s:%s,", $4, $5, $6);} / Backup completed/ {end = mktime($3" "$2" "$1" "$4" "$5" "$6); if (end) {print hms end - start; start = ""; }}' logs.txt

我想搜索模式 Backing up "/1/2"on One 并显示以下消息。

我得到以下代码的输出如下。如何忽略双引号并搜索模式。

backslash not last character on line

最佳答案

awk 命令中的正则表达式不正确。

您需要在(正向)斜杠 / 之前添加一个反斜杠 \ 因为这个字符是正则表达式分隔符:

awk '/Backing up "\/1\/2" on One/{...}'

请注意,您不需要在双引号前添加反斜杠,因为 shell 不会解释单引号内的字符串。

关于linux - 使用 awk 忽略双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50148661/

相关文章:

python - Linux 上的 Pylint `--good-names` 语法

linux - 为什么我在一个终端上得到 "Suspended (tty output)"而在其他终端上却没有?

linux - 用 bash 脚本解析 `ls -l` 的结果

linux - 在Linux shell脚本中对多列进行排序

django - 从运行服务器迁移到生产服务器

bash - 如何在 Bash 中连接文件中的所有行?

linux - 在 awk 命令中使用 BASH 整数变量

linux - Apache - 最后一小时的日志

linux - sysfs_create_group() : Where to call?

php - session 在 php/linux centos 中丢失