Всем привет! Знатоки, подскажите, пожалуйста, по сабжу. Вот есть например имя файла: s 2 (эс пробел два).
Я хочу например этот файл обработать в sed, а потом сохранить результат под другим именем.
Cкрипт запускаю так:
./myscript s\ 2
Команда sed в скрипте, например:
#!/bin/bash
NAME=$(printf '%q' "$1")
sed 's/.*/\U&/' $NAME
sed: can't read s\: No such file or directory
sed: can't read 2: No such file or directory
Команда вывода в файл:
#!/bin/bash
NAME=$(printf '%q' "$1")
echo 123 > $NAME
./myscript: line 4: $NAME: ambiguous redirect
Не понимаю, как правильно экранировать, чтобы команды понимали имя файла (которое, кстати, может содержать как проблему не только пробелы, но и любые другие символы).
Пробовал и такой вариант:
NAME="$(echo $1 | sed 's/[^[:alnum:]]/\\&/g')"