использование команды tr для разрешения чтения

#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