Что делает w c -w в командах echo и tr? - PullRequest
0 голосов
/ 14 февраля 2020

Я сейчас подхожу к Linux и наткнулся на что-то, чего я действительно не понимаю.

У меня уже есть заявленная команда:

echo "12345"|wc –w|tr "123" "321"

Вывод этой команды 3, поэтому я подумал, что она может подсчитать, сколько из этих чисел изменилось, но после некоторого тестирования я пришел к выводу, что на самом деле она показывает первое число во втором аргументе tr, поскольку во многих случаях это сработало.

Некоторое время я думал, что закончил свои эксперименты, поскольку получил полную идею, но нашел конкретный c случай:

echo "46817"|wc -w|tr "46817" "64194" который выводит в 9, и я понятия не имею, почему.

Что выводит вся команда в некоторых случаях?

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

эхо "12345" | w c –w | tr "123" "321" (выходы 3)
эхо "46817" | w c -w | tr "46817" "64194 "(выводы 9)

Вышеуказанные команды: pipe , в которых выходные данные каждой команды передаются следующей. Команды разделены "|" (символ, названный, удивление !, "труба"). Обе команды выполняют:

echo: выводит что-то (в w c).

w c: подсчитывает символы, или слова, или строки. «w c -w» считает слова, поэтому будет выводить «1», потому что «12345» и «46817» - это слова, не содержащие разделителя слов.

tr: «переводит», то есть изменяет символы он получает с другими. При указании "123" "321" 1 (первый символ в 123) переводится в 3 (первый символ из 321); 2 (второй символ в 123) переводятся в 2 (второй символ в 321) и т. д.

В обеих командах tr получает «1» в качестве ввода и превращает «1» в некоторый другой характер.

0 голосов
/ 14 февраля 2020

Последняя команда tr меняет цифры в счете второй команды. Так как w c команда считает слова в первом аргументе (равно 1), чем последняя команда меняет Intiger 1 на 9.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...