Почему это использование оператора канала не работает?

$ tr ' ' '\n' <file.in

Это заменит все пробелы во входном файле символами новой строки.

Результатом будет

2
3
4
5

(и др.)

Чтобы сохранить вывод в файл:

$ tr ' ' '\n' <file.in >file.out
0
15.12.2019, 15:34
3 ответа

Просто для разнообразия :Как насчет бега:

kill -SIGTERM "$(pgrep -f firefox)"

Не уверен в регистре -нечувствительность:

kill -SIGTERM "$(pgrep -fi FirEfox)"

Несколько процессов с одинаковым именем, и вы хотите завершить первый из них:

kill -SIGTERM "$(pgrep -f firefox | head -1)"

Информация о моемpgrep

$ pgrep -V
pgrep (proctools 0.4pre1) http://proctools.sourceforge.net
0
28.01.2020, 02:14

Лучше беги:

 kill $(pidof firefox)

или

pkill firefox
1
28.01.2020, 02:14

The pipe should give the output of one command as an input to another.

Это правильно, но killне принимает никаких входных данных на стандартный ввод. Вместо этого вам нужно предоставить его в качестве аргумента командной строки:

kill -SIGTERM "$(pidof firefox)"

или:

pidof firefox | xargs kill

$(— это расширение команды внутри оболочки, а xargs— внешнее.

Тем не менее, у этих подходов есть ряд краеугольных случаев, например, что делать, если есть несколько pid, нет pid и т. д. --вот почему pkill существует:

pkill -TERM firefox
6
28.01.2020, 02:14

Теги

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