Конвертировать только пробелы, а не символы табуляции или перевода строки, с - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь в bash-скрипте преобразовать строку кода, заменив пробелы и только символы пробела символом «,». Я не хочу, чтобы вкладка или переводы новой строки затрагивались.
У меня есть код, который работает:

cat $FILE | tr '\t' '@' | tr '\n' '%' | tr '[:space:]' ',' | tr '@' '\t' | tr '%' '\n' > $NEWFILE

Но, очевидно, это не элегантно. Я знаю, что должен быть способ идентифицировать только символ пробела, не используя перевод строки или табуляцию. Таким образом, мне не нужно было бы преобразовывать эти символы во что-то еще, а потом снова.

есть идеи?

1 Ответ

0 голосов
/ 04 сентября 2018

Если вы хотите преобразовать только обычный пробел, не используйте [[:space:]] (который существует явно с целью преобразования табуляции и новых строк, а также обычных пробелов); просто используйте .

tr ' ' ',' <"$FILE" >"$NEWFILE"
...