【发布时间】:2021-11-14 09:54:21
【问题描述】:
我找到了这个正则表达式
sed -i 's/.*\(:.*\)/\1/g' file.txt 用于在 : 之前删除,但我也需要删除 :,结果应用此正则表达式:
[09/11/2020 15:01:37] Name: Hello!
返回:
Hello!
但我只需要
Hello!
【问题讨论】:
-
从
()中取出:
我找到了这个正则表达式
sed -i 's/.*\(:.*\)/\1/g' file.txt 用于在 : 之前删除,但我也需要删除 :,结果应用此正则表达式:
[09/11/2020 15:01:37] Name: Hello!
返回:
Hello!
但我只需要
Hello!
【问题讨论】:
()中取出:
你可以使用
sed -i 's/.*: *//' file.txt
这将删除直到最后一个: 的所有文本,包括: 和: 之后的所有空格(如果有)。
#!/bin/bash
s='[09/11/2020 15:01:37] Name: Hello!'
sed 's/.*: *//' <<< "$s"
# => Hello!
【讨论】:
不要使用捕获组复制: 之后的所有内容,而是将: 之前的所有内容替换为空字符串。
sed -i 's/^.*://' file.txt
【讨论】: