Fields 1,2,3,4 are date fields yyyy-mm-dd.
Delimited by ";"
"-" if no date.
Field 4 will always have a date
Примеры;
-; 2016-08-19; 2016-08-19; 2018-07-17; Beach-Rangiroa.jpg
-; -; -; 2018-09-12; MV3_0034-copy.webp
2016-12-10; 2016-12-10; 2016-12-20; 2018-07-18; Sukhothai-61.jpg
-; -; -; 2018-07-19; Gdu9Rwhu6W3Q5W6q_1Qag.jpg
Цель : используйте awk для печати первой доступной даты в полях заказа 1,2,3,4
Iя пробовал это;
awk -F";" '{if ($1!="-") print $1; else if ($2!="-") print $2; else if ($3!="-") prin$3; else if ($4!="-") print $4}'
Results ...
2016-08-19
-
-
bash version 4.3.48
Я пытаюсь добиться этого: например, строка 1 в примере...
2016-08-19;Beach-Rangiroa.jpg
echo '-; -; -; 2018-07-15; Stock-Photo-114398301.webp; WEBP; image/webp; 2000; 1333' | \
awk -F';' 'OFS=";" {for(i=1; i<5; ++i) { if ($i ~ /[0-9]{4}-[0-9]{,2}-[0-9]{,2}/) { print $i,$5,$6,$7,$8,$9; next; }}}'
Результат;
2018-07-15;Фото-Photo-114398301.webp;WebP;изображение / WebP;2000;1333
Это работает хорошо, кроме 1-го пробела в дате, также есть метод, доступный для проверки даты, например, дата -d "% Y-% m-% d"?
Спасибо.