sed d управляют с 2 шаблонами

Мой file.txt содержит следующее:

abc
123
abcd
1234
abcde
12345

Я выполнил команду sed ниже:

sed '/^[a-z]/,/[a-z]$/d' alphabet3.txt 

Не это означает, удаляют из первой строки, которая запускается с алфавита через первую строку, которая заканчивается алфавитом? Таким образом, я ожидал, что мой вывод будет:

1234
abcde
12345

Так как "abc" запускается с алфавита и концов "abcd" с алфавитом. Поэтому 1-3 удалены. Но моя эффективная выходная мощность:

1234

Я думаю, что ясно пропускаю что-то.

1
задан 31 January 2017 в 05:08

1 ответ

От GNU sed руководство :

диапазон адресов соответствует строкам, начинающим с того, где первый адрес соответствует и продолжается до вторых соответствий адреса (включительно).

Это - первый адрес, который действительно имеет значение. Второй адрес не должен соответствовать, в этом случае диапазон покроет до конца файла.

, Если мы инвертируем Вашу команду (печатающий только согласующие отрезки длинной линии вместо того, чтобы удалить их), Вы видите, что это - то, что происходит:

$ sed -n '/^[a-z]/,/[a-z]$/p' bar
abc
123
abcd
abcde
12345
1
ответ дан 7 December 2019 в 15:41

Другие вопросы по тегам:

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