regex - 使用 sed/regex 进行 bash 字符串操作

标签 regex bash sed

通过 bash,我尝试从文件中提取部分行。

目前我正在连续使用两个 sed 命令,如下所示:

sed -n -e "s/^abc=//p" file | sed -n -e "s/\.//gp"

可以接收abc=1.2.3并吐出123 。这让我思考......我可以通过一个命令调用来实现这一目标吗?就像我想在文件中查找与 abc=<digit1>\.<digit2>\.<digit3> 匹配的所有字符串并吐出<digit1><digit2><digit3> .

编辑:

为了澄清,我希望它只打印出匹配的行。例如,如果我有以下文件:

1.2.3.4
abc=quack
qtip=1.2.3
abc=1.2.3
abc = 4.5.6

运行该命令应该只打印 123

最佳答案

您可以使用 awk 来从 abc= 之后的部分中删除 .:

awk -F= '$1=="abc"{gsub(/\./, "", $2); print $2}' file

关于regex - 使用 sed/regex 进行 bash 字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25087456/

相关文章:

c# - 如何正确编写正则表达式以匹配特定的起始数字?

regex - Magento htaccess 重写和重定向

html - 删除 HTML 标记中的所有属性,但使用正则表达式指定的属性除外

android - 使用sed操作xml文件

python - python中根据非连续整数、字符和 float 分割字符串

c - 解析 C 脚本的输出,valgrind 提示未初始化的值

linux - BASH 日期命令 : can't re-combine date and time

linux - 从 linux shell 中的 'ftp' 命令获取退出状态代码

shell - 从文本文件中打印非连续行的快速 Unix 命令?

linux - 使用 unix 脚本向逗号分隔文件添加空/零值会出现问题