#linux #bash #shell #tr
#linux #bash #оболочка #tr
Вопрос:
Следующие команды были выполнены мной
[root@gblabvl31 Aakash]# cat > file1.txt
-rwx
[root@gblabvl31 Aakash]# cat file1.txt |tr '[-rwx]' '[0421]' > file2.txt
[root@gblabvl31 Aakash]# cat file2.txt
-]]]
Я не мог понять, почему ожидаемый результат, который
0421
не достигается
Ответ №1:
tr
немного особенный и ожидает, что его параметры уже будут символьными классами, таким образом
$ echo '-rwx' | tr -- '-rwx' '0421'
0421
дает ожидаемый результат.
Ответ №2:
Избавьтесь от символьного класса:
$ tr -- '-rwx' '0421' <<<'-rwx'
0421