локальный пользователь на сервере samba использует свою основную группу, даже если используется принудительная группа

Конвейер, который вы показываете, по существу

sed expression | awk expression filename

Это будет запускать awkв файле filename, в то время как sedничего не делать, ожидая ввода от пользователя на его стандартном вводе (он будет читать то, что вы набрали на терминале в этот момент ).

Чтобы выйти из этого скрипта, просто нажмите Ctrl+D , чтобы сигнализировать об окончании ввода в процесс sed. Когда sedзамечает, что читать больше нечего, он завершает работу и сценарий завершает работу (, так как именно это «останавливало» его ).

Ваш текущий скрипт более или менее эквивалентен запуску

awk expression filename
sed expression

... так как две команды не взаимодействуют друг с другом по каналу.

То, чем ты хочешь заниматься

sed expression filename | awk expression

Здесь sedработает с файлом и отправляет результат на awkдля дальнейшей обработки. awkзапускается без имени файла, что означает, что он читает со своего стандартного ввода, который подключен к стандартному выводу sedчерез конвейер.

В вашем случае вы хотите

sed 's/\xC2\xA0//g' filename.txt | awk '$1=="|"{if(f){print f" "$2;f=""}else{f=$2}}'

(Будет ли этот конвейер делать то, что вы хотите, или нет, я не знаю, но теперь, по крайней мере, процессы sedи awkбудут передаваться правильно ).

0
07.11.2021, 21:28
0 ответов

Теги

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