用Sed替换部分文本

时间:2010-04-12 01:00:54

标签: regex linux unix sed

我有以下文本文件

Eif2ak1.aSep07
Eif2ak1.aSep07
LOC100042862.aSep07-unspliced
NADH5_C.0.aSep07-unspliced
LOC100042862.aSep07-unspliced
NADH5_C.0.aSep07-unspliced

我想要做的是删除从句点(。)开始到结尾的所有文本。 但为什么这个命令没有呢?

sed 's/\.*//g' myfile.txt

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:4)

你错过了一段时间。你想要:

s/\..*$//g

答案 1 :(得分:1)

您可以使用awkcut,因为圆点是您的分隔线。

$4 awk -F"." '{print $1}' file
Eif2ak1
Eif2ak1
LOC100042862
NADH5_C
LOC100042862
NADH5_C

$ cut -d"." -f1 file
Eif2ak1
Eif2ak1
LOC100042862
NADH5_C
LOC100042862
NADH5_C

比使用正则表达式更容易。

相关问题