2016-01-21 4 views
-1

У меня есть файл с шаблонами, как показано ниже:Как удалить конечные символы в одной строке

a0 
b00 
c000 
d0000000 
e00 
f00 

Как написать PERL Oneliner или СЭД команды, чтобы получить выходной сигнал как:

a 
b 
c 
d 
e 
f 

Моего испытание:

sed -i 's/0*$//g' filename.txt 
+1

я не с какой-либо вопрос с вашей командой. –

+1

Если ваша команда не работает, я предполагаю, что проблема кроется в другом месте. Поддерживает ли ваш файл окончание строк DOS? Посмотрите, поможет ли конвертация с помощью dos2unix. – tripleee

+0

Что должно быть результатом для 'abc000'? – Toto

ответ

0

Попробуйте это:

sed -r 's/(.).*/\1/' File 

Вывести только первый символ из каждой строки.

+0

Возможно, глобальный флаг 'g' не нужен в матче, который может соответствовать не более чем раз. – potong

+0

potong: right :-) –

0

Это perl эквивалент (замена Inplace):

perl -pi -e 's/^(.).*$/$1/' file 

И если вам интересно awk:

awk 'BEGIN{FS=""}{print $1}' file 
0

очень вероятно, есть конечные пробелы в ваших строках, дать этому SED Oneliner

sed 's/0*\s*$//' file 

Обратите внимание, чтоФлагне требуется.

0

Один из способов с помощью Perl:

perl -F"" -alne 'print $F[0]' file 
Смежные вопросы