Creo que tenías la intención de hacer:
set -o filec
set -o noglob
set
sin ninguna de las opciones establece los argumentos como parámetros del shell. deman mksh
:
Options can be changed using the +-o option syntax, where option is the long name of an option, or using the +-letter syntax, where letter is the option's single letter name (not all options have a single letter name).
(Pero no puedo encontrar una opción de shell llamada filec
en mksh
, al menos.)
Это очень распространенная ошибка.
Когда вы перенаправляете stdout или stderr для записи в файл, оболочка сначала усекает файл, чтобы подготовить его к записи. Таким образом, происходит примерно следующее:
newfile.ppm
newfile.ppm
до длины 0 newfile.ppm
tr -d '\ n'
. Как видите, на данный момент содержимое newfile.ppm
уже удалено, поэтому читать нечего. Чтобы обойти это, просто выведите вместо этого в другой файл. Затем вы можете переименовать его позже
Это сделает то, что вы хотите.
[stephan@stephan] ~
$ echo "meh
" > file
[stephan@stephan] ~
$ cat file | tr -d '\n' > file ; cat file
meh