Как написать аргумент для существующей команды

Что я хочу сделать, это написать аргумент для tr, который переворачивает текст для кодов rot13.

Я хочу сделать это

tr 'A-Za-z' 'N-ZA-Mn-za-m'

Только это

tr -r

И иметь аргумент -r, что делает первая команда

2
задан 14 September 2017 в 16:35

1 ответ

Используйте функцию оболочки, которая переносится tr команда:

tr () {
  if [[ $1 == "-r" ]]; then
    shift
    set -- '[A-Za-z]' '[N-ZA-Mn-za-m]' "$@"
  fi
  command tr "$@"
}

Проверьте, что "регулярный" TR работает:

$ echo "Hello World!" | tr 'aeiou' 'AEIOU' 
HEllO WOrld!

И теперь, используйте rot13 опцию

$ echo "Hello World!" | tr 'aeiou' 'AEIOU' | tr -r
URyyB JBeyq!
$ echo "Hello World!" | tr 'aeiou' 'AEIOU' | tr -r | tr -r
HEllO WOrld!
3
ответ дан 14 September 2017 в 16:35

Другие вопросы по тегам:

Похожие вопросы: