Какое значение параметра -n передается в команду sed? - PullRequest
0 голосов
/ 09 ноября 2019

Может кто-нибудь сказать, пожалуйста, как работает sed -n '1!p? Ниже приведена полная команда, которую я использую для сортировки моих модулей в k8s на основе назначенных им узлов.

kubectl get pods -o wide --all-namespaces|sort -k8 -r| sed -n '1!p'

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

Я хочу понять, как работает часть sed и какова значимость параметров, передаваемых в sed?

Ответы [ 2 ]

1 голос
/ 09 ноября 2019

С info sed:

-n: по умолчанию «sed» печатает пространство шаблона в конце каждого цикла через скрипт (* note Как работает «sed»: цикл выполнения. ). Эти параметры отключают эту автоматическую печать, и «sed» выдает выходные данные только при явном указании команды «p».

1p: печатать первую строку

1!p: не делатьпечать первой строки.

1 голос
/ 09 ноября 2019

По умолчанию sed выводит каждую строку, которую анализирует.
-n позволяет скрыть этот вывод и отображать только строки, указанные с параметром p.

InНапример, sed -n '1!p' означает «Отображать каждую строку, но первую».


Более понятный пример - поиск / замена на sed. Если вы хотите увидеть весь полученный файл, вы будете использовать это:

sed 's/from/to/g' file.txt

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

sed -n 's/from/to/gp' file.txt
...