Удалите ведущий пробел из файла

Моя оболочка имеет вызов к 'состоянию' в моем .login файле, для предоставления мне немного сообщения дня. Однако некоторые состояния начинаются с одной ведущей пробельной строки, некоторые начинают два, и у некоторых нет ведущих пробельных строк вообще. Это прослушивает меня.

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

Это, кажется, не легкая острота двухминутная фиксация, и когда я читал (тростник) через страницы справочника для sed и grep, я полагал, что спрошу наших замечательных покровителей здесь.

11
задан Tunaki 15 November 2015 в 22:25
поделиться

4 ответа

Использование того же источника, что и Dav:

# delete all leading blank lines at top of file
sed '/./,$!d'

Источник: http://www.linuxhowtos.org/System/sedoneliner.htm?ref=news.rdf

Дополнительно , вот почему это работает:

Запятая разделяет «диапазон» операции. sed может принимать регулярные выражения для определений диапазонов, поэтому /./ сопоставляет первую строку с «чем угодно» (. ) на ней, а $ указывает конец файл. Следовательно,

  • /./,$ соответствует «первой непустой строке до конца файла».
  • ! затем инвертирует этот выбор, делая его фактически «пустыми строками в начало файла ".
  • d удаляет эти строки.
19
ответ дан 3 December 2019 в 05:12
поделиться
# delete all leading blank lines at top of file
sed '/./,$!d'

Источник: http://www.linuxhowtos.org/System/sedoneliner.htm?ref=news.rdf

Просто вставьте в него результат удачи:

fortune | sed '/./,$!d'
2
ответ дан 3 December 2019 в 05:12
поделиться

Как насчет:

sed "s/^ *//" < fortunefile
1
ответ дан 3 December 2019 в 05:12
поделиться

Я не уверен, как на самом деле выглядит ваше предсказание, но вот иллюстрация

$ string="       my message of the day"
$ echo $string
my message of the day
$ echo "$string"
       my message of the day

, или вы можете использовать awk

echo "${string}" | awk '{gsub(/^ +/,"")}1'
0
ответ дан 3 December 2019 в 05:12
поделиться
Другие вопросы по тегам:

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