Час часу в Linux bash [закрито]


26

Я намагаюся відобразити час дати у вигляді

08.07.2013 16:52:13

за допомогою команди в bash script:

dt=`date '+%d/%m/%Y_%H:%M:%S'`

яка змінна використовується для заповнення файлу CSV.

Єдиним прийнятим знаком є ​​"_" (підкреслення) або "-" між датою та часом, вихід -

07.08.08_16: 52: 13

Як я можу отримати проміжок між датою та часом? Я спробував майже (сподіваюся) все.


5
" " Та "-" - це єдині символи, прийняті _who ? Що зупиняє заміну "_" на "" у dateрядку формату?
манатство

Ніщо не перешкоджає включенню команди "" в команду, вони просто не з'являються у висновку. Спробуйте date + "% b% e", і ви отримаєте "4 вересня" (один пробіл) на сьогодні, а не бажаний 2. Я використовую його в сценарії, і моє рішення полягає в тому, щоб зробити операцію в 3 етапи (я насправді об'єднайте їх в один рядок коду, але ви зрозумієте, що це ідея).
Jim2B

З усією повагою, як за це питання набрали 20 голосів? І як він потрапив до черги на повторне відкриття?
G-Man каже "Відновити Моніку"

Відповіді:


49
#!/bin/bash

dt=$(date '+%d/%m/%Y %H:%M:%S');
echo "$dt"

Здогадаєтеся, проблема полягає у тому, щоб “перегукуватися” на csv.


3
якщо вам потрібні мілісекунди, використовуйте date '+%F %T.%3N'. якщо вам потрібні мікросекунди, використовуйте date '+%F %T.%6N'. якщо вам потрібні наносекунди, використовуйте date '+%F %T.%N'. %Fє на дату, вона дає YYYY-MM-DD, ви можете використовувати %Dзамість, щоб отримати MM-DD-YYYY, %Tце час HH:MM:SS,.
computingfreak

4

Це працює:

#!/bin/bash
dt=`date '+%d/%m/%Y %H:%M:%S'`
echo "$dt"

Також можливо використовувати $(і )замість `і`.


Я забув згадати, що йде неправильно після застосування awk / home / pi / SB_tool / sunnybeamtool / bin / sunnybeamtool -l | awk -v tot = $ tot -v dt = $ dt -v день = $ день -v mth = $ mth 'наступна помилка 08.08.2013 23:03:03 awk: рядок 1: синтаксична помилка біля або поблизу:
Генрі

Вирішується шляхом присвоєння 2 окремих значень dt і tm. awk не приймає 1 змінну з 2 значеннями, розділеними пробілом
Генрі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.