bash - 替换多个 block 中特定模式之间的任何字符

标签 bash awk sed

我遇到类似于 this 的问题一个,但我无法适应我的情况。

假设我有一个包含许多这样的行的文件:

f  1/1/519 2/2/2 3/3/520
f  287/4/521 1/5/519 3/6/520
f  5/7/522 1/8/523 287/9/524

我想替换每个 block 的两个斜杠(number/anyNumber/number)之间的内容。

我希望得到以下结果:

f  1//519 2//2 3//520
f  287//521 1//519 3//520
f  5//522 1//523 287//524

正确的 sed (或其他命令)命令是什么?

使用 MacOS。

最佳答案

$ sed 's:/[^/]*/://:g' file
f  1//519 2//2 3//520
f  287//521 1//519 3//520
f  5//522 1//523 287//524

关于bash - 替换多个 block 中特定模式之间的任何字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57151226/

相关文章:

bash - 为什么 tee 等待所有子 shell 完成?

linux - 如何使用 grep、sed 和 awk 打印找到的模式后的下一个单词?

linux - 如何使用 awk 或 sed 在 bash 中调整列字段的长度?

bash - 有没有办法删除文件中早于特定日期的所有日志条目? ( bash )

linux - Sed 似乎正在删除整行

bash - 用于 ETL 过程的 KornShell 或 Bash Shell?

linux - 转换列模式

regex - awk 正则表达式

sed - 使用带特殊字符的 sed

linux - 如何使用 sed 删除双反斜杠