Добавление суффикса не работает с 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
Другие вопросы по тегам