Мой 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
Я думаю, что ясно пропускаю что-то.
От GNU sed руководство :
диапазон адресов соответствует строкам, начинающим с того, где первый адрес соответствует и продолжается до вторых соответствий адреса (включительно).
Это - первый адрес, который действительно имеет значение. Второй адрес не должен соответствовать, в этом случае диапазон покроет до конца файла.
, Если мы инвертируем Вашу команду (печатающий только согласующие отрезки длинной линии вместо того, чтобы удалить их), Вы видите, что это - то, что происходит:
$ sed -n '/^[a-z]/,/[a-z]$/p' bar
abc
123
abcd
abcde
12345