Разделение слов при использовании вырезания, если разделитель состоит из нескольких пробелов

Для этого может быть полезен Perl:

perl -MTime::Piece -slE 'say +(Time::Piece->strptime($date, "%Y%b%d") - 2 * 86_400)->ymd' -- -date="$rel_date"

Вы указываете формат входящей переменной даты, чтобы преобразовать ее в объект времени, выполнить арифметику даты, а затем вывести в желаемом формате ГГГГГ -мм -дд.

Задокументировано здесь:https://perldoc.perl.org/Time/Piece.html

1
28.01.2021, 21:31
1 ответ

Я не думаю, что поведение cutдолжно было так недавно измениться. Я также не могу воспроизвести это с Debian 8.11 и cutиз GNU coreutils 8.23.

Однако, если вы укажете cutаргумент -f 2-с тире в конце, вы получите все поля, начинающиеся с поля 2. Что, я полагаю, в значительной степени соответствует тому, что вы описываете:

$ cut -d ' ' -f2- <<< "aaa   bbb"
  bbb

Обратите внимание, что в выводе есть два начальных пробела, они являются разделителями полей между полями 2 (пусто ), 3 (пусто )и 4(bbb). У вас был один пробел в вопросе, но я не знаю, было ли это сделано намеренно.

3
18.03.2021, 22:33

Теги

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