2012-04-19 5 views
1

Если я исполню это на Mac OS X 10.7.2 в терминальном App:SED добавляет новую строку в конце

$ cat test.txt | od -c 

Я получаю

0000000 t e s t 1 \n t e s t 2      
0000013 

Это реальное содержание моего теста. txt-файл. ОК.

Но если я выполняю sed, он добавляет новую строку каждого файла.

$ sed 's/e/X/g' test.txt | od -c 
0000000 t X s t 1 \n t X s t 2 \n     
0000014 

Я не хочу эту новую линию. Как я могу это исправить?

ответ

1

Использование printf в awk. Специальный случай - первая строка, чтобы она печаталась без новой строки. Все остальные строки печатаются с предыдущей новой строкой. Это гарантирует, что вы никогда не закончите новую строку.

Базовая структура:

awk 'NR==1 { printf("%s", $0); next } 
    { printf("\n%s", $0) }' 
Смежные вопросы