Как выполнить действие только с первой строкой?

Это до клиента, хочет ли это отправить их. В начальном запросе это может быть настроено для отправки имени хоста. Большинство клиентов DHCP рабочего стола/сервера делает этот встроенный часто не делает.

6
23.04.2012, 08:07
3 ответа

Возможно, sed '1s/.\(.*\)/\1/' myfile?

12
27.01.2020, 20:21
  • 1
    замедляют регулярные выражения. Лучше сделайте это без них: sed '1s/.//' myfile. –  manatwork 24.02.2012, 17:35

может также использовать awk: awk 'NR==1 {sub(/./,"")} 1'

4
27.01.2020, 20:21

tail может читать из байтового смещения, поэтому если Ваш файл будет использовать только однобайтовые символы (обычно UTF-8 ASCII), то это будет работать.

Это зависит от Вашей ситуации, важно ли это для Вас или нет, но tail быстрее, чем sed... вероятно, becaue sed должен обработать каждую строку индивидуально... Но не используйте его, где существует любой шанс первого символа с помощью больше чем одного байта.

tail -c +2 "file"  

От man tail

- c, - bytes=N производят последние байты N; альтернативно, используйте +N для вывода байтов, запускающихся с Энного из каждого файла

2
27.01.2020, 20:21

Теги

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