Вырезание определенной части строки с помощью cut in bash

Я изменил или (|| )добавить (&& )и все заработало.

cat rtpServiceStatusrun | awk '/Processname\s*Node\s*Status\s*QueueAv/{
while (getline){
        if( $0 !~ /^====*/ && $0 !~ /^ENDTIME*/ ){
                        print $0
                }
        }
}'
2
01.11.2020, 16:15
1 ответ

Вы получили правильный инструмент для работы, cut, но делаете ее намного сложнее, чем нужно. Здесь нет абсолютно никакой причины использовать цикл bash, который только замедляет работу и усложняет ее. cutбудет обрабатывать каждую строку в файле отдельно. Однако разделителем по умолчанию для cutявляется табуляция, а не пробел, поэтому вам нужно указать, чтобы он вырезал пробелы, используя флаг -d. Затем, вместо того, чтобы указывать ему вырезать определенные символы, просто скажите ему напечатать первое поле с-f 1:

$ cut -d' ' -f 1 file 
appset.org
bbchannel.eu
cyberset.it
cybersetsystems.com
romelidays.com
novaprospect.eu

С помощью sedвы попытаетесь удалить все после первого пробела:

$ sed 's/.*//' file 
appset.org
bbchannel.eu
cyberset.it
cybersetsystems.com
romelidays.com
novaprospect.eu

Или вы можете использовать awk, который по умолчанию разбивается на поля по пробелам:

$ awk '{print $1}' file 
appset.org
bbchannel.eu
cyberset.it
cybersetsystems.com
romelidays.com
novaprospect.eu

Или перл:

$ perl -pe 's/\s.*//' file 
appset.org
bbchannel.eu
cyberset.it
cybersetsystems.com
romelidays.com
novaprospect.eu

Или снова перл:

$ perl -lane 'print $F[0]' file 
appset.org
bbchannel.eu
cyberset.it
cybersetsystems.com
romelidays.com
novaprospect.eu

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

$ while read want rest; do echo "$want"; done < file
appset.org
bbchannel.eu
cyberset.it
cybersetsystems.com
romelidays.com
novaprospect.eu

Или, безопаснее для произвольного ввода:

$ while read -r want rest; do printf '%s\n' "$want"; done < file
appset.org
bbchannel.eu
cyberset.it
cybersetsystems.com
romelidays.com
novaprospect.eu
5
18.03.2021, 22:53

Теги

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