sed 删除 select 字符以及行中第一次出现字符之前的所有内容

sed remove select char and everything before first occurrence of character in line

我找到这个正则表达式 sed -i 's/.*\(:.*\)//g' file.txt 用于在 : 之前删除,但我也需要删除 :,结果将此正则表达式应用于:

[09/11/2020 15:01:37] Name: Hello!

return:

Hello!

但我只需要

Hello!

您可以使用

sed -i 's/.*: *//' file.txt

这将删除最后 : 之前的所有文本,包括 ::.

之后的所有空格(如果有)

online demo

#!/bin/bash
s='[09/11/2020 15:01:37] Name: Hello!'
sed 's/.*: *//' <<< "$s"
# => Hello!

不要使用捕获组复制 : 之后的所有内容,而是将 : 之前的所有内容替换为空字符串。

sed -i 's/^.*://' file.txt