Есть ли специалисты по linux?

Sep 08, 2009 18:36

Товарищи! Я решила немного улучшить свои познания в линуксе и заодно оптимизировать одну рутинную задачу. Все это я провожу под windows, где стоит пакет портированных утилит UnxUtils.

Цель: модифицировать файл, в котором данные идут через запятую, заменив запятую с последующим пробелом на символ ввода.

Пример:
test1, test2, test3

Мне нужно:
test1 // ( Read more... )

ЭВМ

Leave a comment

Comments 7

(The comment has been removed)

mal_inna September 8 2009, 15:05:44 UTC
Да Бог с вами! Была бы я молодой и давно все освоившей, разве я бы задавала такие глупые вопросы про элементарную замену в текстовом файле?

Reply

(The comment has been removed)

mal_inna September 8 2009, 16:09:02 UTC
Милая моя! Ведь учиться никогда не поздно. Я еще же и работаю, хоть и на пенсии, приходится часто заниматься рутинными работами с текстовыми файлами. Вот и решила спросить, может тут мне и помогут.

Reply


nikt0 September 9 2009, 11:39:18 UTC
Такой способ подойдёт?
# cat expr
s/, /\
/g

# cat test
One, two, three, four, five, six.

# sed -f expr test
One
two
three
four
five
six.

Reply

mal_inna September 9 2009, 11:59:48 UTC
Спасибо вам огромное!
Работает, как надо. А если не секрет, что я делала не так с коммандой tr ",\s" \r < input > output?

Reply

nikt0 September 9 2009, 12:37:21 UTC
tr умеет заменяет 1 символ на 1 символ. Если в первой строке символов больше, чем во второй строке, то "лишние" символы будут просто удалены.
Конструкция \s в команде tr воспринимается не как пробел, а как символ s. По крайней мере, в RedHat и Solaris tr работает именно так. Возможно, в UnxTools комбинация \s обрабатывается иначе. Я не могу проверить.)

Reply

mal_inna September 9 2009, 13:12:09 UTC
Спасибо! Теперь буду подробнее изучать sed. Прекратят поддержку winXP - совсем на линукс перейду, готовлю плацдарм. :)

Reply


Leave a comment

Up