如何从文件中删除两个冒号之间的字符串模式

如何从文件中删除两个冒号之间的字符串模式

搜索了很多次但没有找到任何解决方案。

例如:如果字符串是

a12345:hello world:hello world again:other string

输出:

a12345::hello world again:other string

所以我只想删除第一和第二个冒号之间的内容

任何帮助,将不胜感激。

谢谢,

答案1

使用sed

sed 's/:[^:]*/:/'
  • 第一个:匹配冒号
  • [^:]*- 匹配任意数量的非冒号字符
  • 最后:- 用冒号替换匹配,因为您的匹配包含第一个冒号,但从您的输出中我看到您想保留它。

答案2

使用sed

sed -i 's/:[^:]*/:/' file_name

使用awk

awk -F':' -v OFS=":" '{$2="";print}' file_name

相关内容