Гигант Samba4 в Solaris 11

Решение GNU sed требует -i для редактирования в строке:

sed -i 's/$/ 1/' file.txt

(С BSD sed, вам нужно sed -i '')

В awk, вы должны обработать это временным файлом:

awk '{ print $0 " 1" }' file.txt > tmp && mv tmp file.txt

На самом деле, sed также создает временный файл, но -i обрабатывает, что

Проблема с awk '{ печатает $0 " 1" }' < файл. txt > file.txt:

Переадресация была выполнена до того, как awk получил управление. > file.txt усекает файл. Попробуйте в терминале:

>file

Файл > file.txt будет иметь нулевой размер, даже если он был до того, как файл имел содержимое. Таким образом, awk не имеет данных, которые можно было бы прочитать из этого файла. Это та же проблема, что и с sed.

Окончательное решение с помощью \r разрывов строк:

perl -pi -e 's/\r\n|\n|\r/ 1\n/g' file.txt
0
19.12.2017, 00:57
0 ответов

Теги

Похожие вопросы