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

时间:2016-08-16 08:21:01

标签: unix awk sed grep

我有一个像

这样的文件设置
TEXT1:TEXT2

基本上以:

分隔的文字行

我希望:右侧的所有文字都消失了, 所以TEXT1:TEXT2会变成TEXT1

4 个答案:

答案 0 :(得分:2)

awk -F: '{$0=$1}1' infile
TEXT1

make":"作为您的分隔符,然后将column1设置为您的记录。

答案 1 :(得分:2)

使用剪切

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

-d:

使用sed

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

-f1

使用grep

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

$ cut -d: -f1 file
TEXT1

答案 2 :(得分:0)

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

$ awk 'sub(/:.*/,"",$0)' test
TEXT1

答案 3 :(得分:0)

使用sed

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

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

的备份文件

使用grep

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