Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как при выводе на стдаут, убирать несколько символов?  (Прочитано 1002 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Averus8

  • Автор темы
  • Любитель
  • *
  • Сообщений: 58
    • Просмотр профиля

Например я пишу date
мне выдает:
Sun Dec 5 04:48:00 2010
как сделать, чтоб выводило без первых 4 символов ?
Dec 5 04:48:00 2010
(это пример, мне не это нужно, просто понять хочу) удаляемые символы всегда разные.


Спасибо.

Оффлайн Упс

  • Старожил
  • *
  • Сообщений: 3231
    • Просмотр профиля
А man date не смотрел, или man --help?
Цитировать
-d,  --date=СТРОКА        показать не текущее время, а время, описанное
                            заданной СТРОКОЙ
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 04 Декабря 2010, 06:25:35 от Упс »
xUbuntu 12.04

Оффлайн Дмитрий Бо

  • Погонщик серверов
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3549
  • Я не техподдержка, я за порядком слежу
    • Просмотр профиля
В общем случае — с помощью sed.

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Самое простое что пришло в голову:
date | awk '{print $2 " " $3 " " $4 " " $5 " " $6}'
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн Averus8

  • Автор темы
  • Любитель
  • *
  • Сообщений: 58
    • Просмотр профиля
А man date не смотрел, или man --help?
Цитировать
-d,  --date=СТРОКА        показать не текущее время, а время, описанное
                            заданной СТРОКОЙ
(Нажмите, чтобы показать/скрыть)

а это я что там написал? а? - (это пример, мне не это нужно, просто понять хочу)

2остальным: пробую Вами предложенное.

Оффлайн Упс

  • Старожил
  • *
  • Сообщений: 3231
    • Просмотр профиля
Цитировать
а это я что там написал? а? - (это пример, мне не это нужно, просто понять хочу)
Ну так какая строка такой и вывод, пример для понимания.
Или я не понял что ты хочешь понять. :)
xUbuntu 12.04

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Можно еще вот так, но тогда в начале остается пробел. Хотя его можно удалить через "sed":
date | awk '{$1="" ; print $0}' | sed -E /./s///
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн Дмитрий Бо

  • Погонщик серверов
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3549
  • Я не техподдержка, я за порядком слежу
    • Просмотр профиля
А ещё можно любой другой символ-разделитель в awk использовать, не пробел.

Оффлайн Averus8

  • Автор темы
  • Любитель
  • *
  • Сообщений: 58
    • Просмотр профиля
awk то что надо, а вот про сед ничего не понял, и в мане у меня нет -E

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Не могу заставить такую конструкцию работать:
aliftin@r2d2:~$ date | awk '{for (i=2; i>NF; i++); {print $i}}'
Sat

Может кто нибудь объяснит как она работает, а то я что то не нашел примеров такого использования awk.

UP Sed  страшная вещь, не пытайтесь понять как оно работает, просто ищите готовые решения на нем и подстраивайте под свои нужды как получится. Я и сам сколько им пользуюсь толком не могу понять как оно работает, знаю пару приемов необходимых для скриптописания, но осилить что то самому не получается.
« Последнее редактирование: 04 Декабря 2010, 18:21:00 от aliftin »
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн Averus8

  • Автор темы
  • Любитель
  • *
  • Сообщений: 58
    • Просмотр профиля
Ясно.

Я вот нашел проще решение:
date | cut -b 5-

Оффлайн drBatty

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
первые 4?
$ date | sed 's/....//'первые непробелы вместе с первым пробелом
$ date | sed 's/[^ ]* //'
подробнее info sed

 

Страница сгенерирована за 0.021 секунд. Запросов: 20.