从特定字符开始删除所有文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从特定字符开始删除所有文本相关的知识,希望对你有一定的参考价值。

我有一个文件设置

TEXT1:TEXT2

基本上由:分隔的文本行

我希望:右边的所有文字都没了,所以TEXT1:TEXT2会变成TEXT1

答案

Using cut

我们告诉cut我们的字段分隔符是冒号,-d:,我们要选择第一个字段-f1

$ cut -d: -f1 file
TEXT1

Using sed

我们告诉sed删除一行上的第一个冒号以及之后的所有内容:

$ sed 's/:.*//' file
TEXT1

Using grep

我们告诉grep选择每个的第一部分,但不包括第一个冒号:

$ grep -o '^[^:]*' file
TEXT1
另一答案
awk -F: '{$0=$1}1' infile
TEXT1

将“:”设为分隔符,然后将column1设置为记录。

另一答案

下面的脚本

awk -v FS=":" '{print $1}' file

也会给你相同的结果。

另一答案

在AWK中,替换:之后的所有内容:

$ awk 'sub(/:.*/,"",$0)' test
TEXT1
另一答案

使用sed

sed -i.bkp 's/:.*//' infile.txt

这也将更改文件并创建名为infile.txt.bkp的备份文件

使用grep

grep -oP '.*(?=:)' infile.txt

以上是关于从特定字符开始删除所有文本的主要内容,如果未能解决你的问题,请参考以下文章

从字符串中间删除特定文本(仅从字符串末尾第一次出现)

使用 bash 删除字符串中特定出现后的所有文本

删除以熊猫系列中特定字符串开头的所有文本

从文本字符串中删除特定单词? [复制]

从容器中删除所有碎片

从堆栈中弹出特定片段并删除其他片段