Добавление суффикса не работает с sed и awk на macOS
Это содержание t.txt
ABCDEFG
ABCDEFG
ABCDEFG
ABCDEFG
Я попробовал эти команды, чтобы добавить суффикс в конце строки:
$ cat t.txt | sed -e 's/$/-asdf/'
$ cat t.txt | awk '{ print $0 "-asdf" }'
Результат в macOS:
-asdfFG
-asdfFG
-asdfFG
ABCDEFG-asdf
Результат в Linux:
ABCDEFG-abcd
ABCDEFG-abcd
ABCDEFG-abcd
ABCDEFG-abcd
Почему я не получаю тот же результат в macOS?
1 ответ
Решение
У вас есть возврат каретки в вашем файле. macOS Sierra, используя встроенный sed для файла LF-only:
mike ~ ❱❱❱ cat t.txt
ABCDEFG
ABCDEFG
ABCDEFG
ABCDEFG
mike ~ ❱❱❱ /usr/bin/sed -e 's/$/-asdf/' t.txt
ABCDEFG-asdf
ABCDEFG-asdf
ABCDEFG-asdf
ABCDEFG-asdf
Повторно сохранил его с помощью CRLF:
mike ~ ❱❱❱ /usr/bin/sed -e 's/$/-asdf/' t.txt
-asdfFG
-asdfFG
-asdfFG
-asdfFG