我发现这个正则表达式sed -i 's/.*\(:.*\)/\1/g' file.txt在:之前删除,但我需要删除:,结果应用这个正则表达式:
sed -i 's/.*\(:.*\)/\1/g' file.txt
:
[09/11/2020 15:01:37] Name: Hello!
字符串返回:
Hello!
型但我只需要
型
mwyxok5s1#
不要使用捕获组来复制:之后的所有内容,而是将:之前的所有内容替换为空字符串。
sed -i 's/^.*://' file.txt
字符串
wyyhbhjk2#
您可以使用
sed -i 's/.*: *//' file.txt
字符串这将删除最后一个:之前的所有文本,包括:和:后面的所有空格(如果有)。参见online demo:
#!/bin/bash s='[09/11/2020 15:01:37] Name: Hello!' sed 's/.*: *//' <<< "$s" # => Hello!
vmpqdwk33#
试试这个,用cut更简单:
cut
cut -d ':' -f 4
字符串对于-d,您可以选择分隔符,即空格使用-f,您可以选择所需的正确冒号结果:
-d
-f
型再见
3条答案
按热度按时间mwyxok5s1#
不要使用捕获组来复制
:
之后的所有内容,而是将:
之前的所有内容替换为空字符串。字符串
wyyhbhjk2#
您可以使用
字符串
这将删除最后一个
:
之前的所有文本,包括:
和:
后面的所有空格(如果有)。参见online demo:
型
vmpqdwk33#
试试这个,用
cut
更简单:字符串
对于
-d
,您可以选择分隔符,即空格使用
-f
,您可以选择所需的正确冒号结果:
型
再见