Unix программирование - PullRequest
       4

Unix программирование

0 голосов
/ 03 марта 2012

как сделать так, чтобы в каждой строке было ДАЖЕ количество символов, удалив последний символ строк с количеством символов ODD.

я пробовал это, но это не работает sed -n '/^. {} / p '

, пожалуйста, помогите

Ответы [ 2 ]

3 голосов
/ 03 марта 2012

Я не знаю, является ли это самым простым способом, но первое, что приходит на ум, это

sed '/^\(..\)*.$/s/.$//'

. /^\(..\)*.$/ находит строки с нечетным количеством символов.Следующая команда s действует только на эти строки.s/.$// удаляет последний символ каждой строки, на которую он воздействует (строки с нечетным количеством символов).

2 голосов
/ 03 марта 2012

Хотите считать перевод строки?Другими словами, в строке "foo \ n" 4 символа или 3?Предполагая, что вы хотите обрезать завершающий 'o' в этой строке, вы можете сделать:

$ perl -pe 'substr( $_, -2, 1 ) = "" unless length( $_ ) % 2'

И обязательное решение awk:

awk '{ print substr( $0, 0, length - length % 2 )}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...