команда даты на Mac bash

С GNUawk:

gawk '
  BEGINFILE{search = "@code prefix." substr(FILENAME, 3, length(FILENAME) - 6)}
  index($0, search)'./*.py.txt

Сообщит о совпадающих строках.

Чтобы напечатать имя файла и соответствующую строку, измените index($0, search)на

.
  index($0, search) {print FILENAME": "$0}

Или для печати только имени файла:

  index($0, search) {print FILENAME; nextfile}

Замените FILENAMEна substr(FILENAME, 3), чтобы пропустить вывод префикса ./.

Список файлов лексически отсортирован. Те, чье имя начинается с ., игнорируются, (некоторые оболочки имеют опцию dotglob, чтобы добавить их обратно; с zshвы также можете использовать квалификатор (D)glob ).

-1
04.11.2019, 16:16
1 ответ

MacOs — это не то же семейство UNIX, что и Linux, поэтому параметры для команд могут отличаться.

РЕШЕНИЕ 1:man dateваш друг.

В MacOS необходимо использовать комбинацию -jи -f.

E444:~ emas$ date -j -f %Y%m%d-%H%M%S 20180101-234852  +%Y/%m/%d\ %H:%M:%S
2018/01/01 23:48:52
E44:~ emas$ date -j -f %Y%m%d-%H%M%S 20180101-234852  +%s
1514868532
E444:~ emas$ date -j -f %s 1514868532
Mon Jan  1 23:48:52 EST 2018

РЕШЕНИЕ 2:используйте brew(https://brew.sh/)для установки некоторых инструментов GNU/Linux.

brew install coreutilsустановит многие базовые инструменты с префиксом g, поэтому dateстанет gdateи будет находиться в вашей папке /usr/local/.

5
28.01.2020, 05:08

Теги

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