Быстрое решение обычно использует самую простую утилиту с одной задачей.
tr
простая утилита, но для чего-то еще: транслитерация (превращающий данный символы в другие), удаляя данный символы или сжимая символы.
Больше универсальных утилит как sed
, awk
или perl
(по приказу размера), сделает это, но здесь, у Вас есть утилита с одной задачей, которая сделала бы это хорошо также: paste
:
paste -d\' /dev/null file.txt /dev/null
Или:
:|paste -d\' - file.txt -
ping 224.0.0.1
Оставляет доступным гораздо большее [112677]пространство имён[112678]. Например, в более поздней версии git'а можно было бы реализовать заглавные вариации в именах команд или разрешить пользователю определять макросы/альязы, как в оболочке, в которой можно было бы определять свои собственные [112679]MV[112680], [112681]CP[112682] и т.д. без необходимости переопределять [112683]mv[112684], [112685]cp[112686] и т.п.[112383].
Для иллюстрации посмотрите на таблицу ниже. Вы увидите, что нет соответствия между кодом для прописной буквы и соответствующей строчной. Они не последовательны, они представлены совершенно разными кодами (таблица [1171639] источник[1171640]):
Другими словами, в то время как [1171642]a[1171643] и [1171644]A[1171645] могут показаться вам похожими, они не похожи на компьютер.[1171276].
Очень хорошо, что статус и статус не одинаковы, потому что файловая система, которая является базой в системе, чувствительна к регистру (из-за правил POSIX). Обычно это хорошая практика, чтобы сохранить то же самое поведение во всей системе.
Последняя важная вещь в чувствительности к регистру, на мой взгляд, заключается в том, что если вы набираете [117961]ls -Ls[117962], то, возможно, вы сами определили это и действительно хотите набирать его с заглавной буквы [117963]L[117964], и система никогда не должна пытаться угадать и всегда выполнять то, что вы набираете.[117550].