วันที่ใน Linux ทุบตี [ปิด]


26

ฉันพยายามที่จะแสดงเวลาวันที่ในรูปแบบของ

07/08/2013 16:52:13

โดยใช้คำสั่งในสคริปต์ทุบตี:

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

ตัวแปรใดที่ใช้เพื่อเติมไฟล์ CSV

ถ่านที่ยอมรับเท่านั้นคือ "_" (ขีดล่าง) หรือ "-" ระหว่างวันที่และเวลาเอาต์พุตคือ

8/7 / 2013_16: 52: 13

ฉันจะได้รับช่องว่างระหว่างวันที่และเวลาได้อย่างไร ฉันพยายามทุกอย่าง (หวังว่า) ทุกอย่าง


5
” และ“ -” เป็นอักขระที่ยอมรับโดย _who เท่านั้น ? คุณหยุดแทนที่“ _” ด้วย“” ในdateสตริงรูปแบบของอะไร
จัดการ

ไม่มีสิ่งใดขัดขวางการรวมของ "" ในคำสั่ง แต่จะไม่ปรากฏในผลลัพธ์ ลองวันที่ + "% b% e" และคุณจะได้รับ "4 ก.ย. " (หนึ่งช่องว่าง) สำหรับวันนี้ไม่ใช่ที่ต้องการ 2 ฉันใช้มันในสคริปต์และทางออกของฉันคือการดำเนินการใน 3 ขั้นตอน (ฉัน รวมกันเป็นรหัสเดียว แต่คุณจะได้แนวคิด)
Jim2B

ด้วยความเคารพอย่างเต็มที่คำถามนี้จะได้รับ 20 คะแนนอย่างไร แล้วมันเข้าสู่ Reopen Queue ได้อย่างไร?
G-Man พูดว่า 'Reinstate Monica'

คำตอบ:


49
#!/bin/bash

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

คาดเดาปัญหาอยู่ใน 'echoing' ถึง csv


3
date '+%F %T.%3N'ถ้าคุณต้องการมิลลิวินาทีใช้ ถ้าคุณต้องการ microseconds 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 day = $ day -v mth = $ mth 'การติดตามข้อผิดพลาด 08/08/2013 23:03:03 awk: บรรทัด 1: ข้อผิดพลาดทางไวยากรณ์ที่หรือใกล้:
Henry

แก้ไขได้โดยการกำหนดค่าแยก 2 ค่า dt และ tm awk ไม่ยอมรับ 1 ตัวแปรโดยมี 2 ค่าคั่นด้วยช่องว่าง
Henry
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.