Как убрать пробел в начале строки, используя sed Plan 9
Похоже, что это должно просто удалить не более 2 пробелов в начале каждой строки: cat test.txt | 9 sed 's/^ //g
; вместо этого он заменяет все пробелы в начале строки. Похоже, что в GNU sed, как я и ожидал, есть, но я заинтересован в изучении плана Plan 9.
Обратите внимание 9 sed
синтаксис здесь, потому что я запускаю его из plan9port.
Более подробно:
$ cat test.txt
This
is
a test.
Bye
$ cat test.txt | 9 sed 's/^ //g'
This
is
a test.
Bye
Я ожидаю, что вывод будет больше похоже на использование GNU sed
:
$ cat test.txt | sed 's/^ //g'
This
is
a test.
Bye
1 ответ
Решение
Похоже, что план 9s SED сломан, как это лечит
sed 's/^ //g'
как если бы это было (псевдокод):
do
sed 's/^ //'
until the sed output is no longer different from the input
или же:
sed 's/^ *//'
или аналогичный вместо правильной интерпретации, которая такая же, как если бы g
не присутствовал:
sed 's/^ //'