2010-04-12 5 views
0

Я следующий текстовый файлЗамена Часть текста Использование 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 

Каков правильный путь?

ответ

4

Вам не хватает периода. Вы хотите:

s/\..*$//g 
+0

Вы избежали периода, чтобы сделать его буквальным. Чтобы соответствовать остальной части строки, вам понадобится другой соответствующий шаблон, например '. *' Или еще лучше '. * $'. Это делает ваше выражение похожим на Clint's –

1

вы можете использовать awk или cut, так как точки ваши delimters.

$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 

проще, чем использование регулярного выражения.

Смежные вопросы