Score:-4

วิธีแปลงข้อความเป็น csv จาก linux

ธง cn
azureuser@puppetagent-ubuntu1:/tmp$ cat /bin/user_activity.sh
#!/bin/bash
echo `last` > /tmp/login_history.txt

ฉันกำลังติดตามข้อมูลผู้ใช้ใน linux ผ่านคำสั่ง "last" ดังนั้นฉันจึงผนวกข้อมูลเข้ากับไฟล์ .txt และ .csv แต่ข้อมูลยังไม่มาในรูปแบบที่ฉันคาดไว้

cat out.txt:

azureuse pts/1 157.47.38.139 จ. 20 ก.ย. 14:30 น. ยังคงเข้าสู่ระบบอยู่ 
azureuse pts/0 157.47.56.225 จันทร์ 20 ก.ย. 12:33 - 14:34 น. (02:00 น.) azureuse pts/0 157.47.56.225 จันทร์ 20 ก.ย. 10:29 - 12:33 น. (02:03 น.) azureuse pts/0 157.47 56.225 วันจันทร์ที่ 20 กันยายน 09:53 - 10:28 น. (00:35 น.) azureuse pts/0 157.47.37.28 วันจันทร์ที่ 20 กันยายน 09:09 - 09:53 น. (00:43 น.) azureuse pts/1 157.47.40.253 วันจันทร์ที่ 20 กันยายน 05: 30 - 08:51 (03:20) azureuse pts/0 157.47.40.253 จันทร์ 20 ก.ย. 05:28 - 08:51 (03:22) azureuse pts/0 157.48.201.134 ศ. 17 ก.ย. 12:15 - 16:10 ( 03:54) สีฟ้า pts/0 157.48.201.134 ศุกร์ 17 ก.ย. 08:47 - 11:38 (02:50) azureuse pts/0 157.48.201.134 ศุกร์ 17 ก.ย. 06:07 - 08:17 (02:09) ฟ้าใส pts /0 157.48.139.114 พฤ. 59 ก.ย. 14:53 - 14:57 (00:04 น.) azureuse pts/0 157.48.139.114 พฤ. 59 ก.ย. 14:48 - 14:48 (00:00) azureuse pts/0 157.48.139.114 พฤ. 16 ก.ย. 13:49 น. - 14:47 น. (00:58 น.) รีบูตระบบ บูต 5.8.0-1041-azure พฤ. 16 ก.ย. 13:29 ยังคงเรียกใช้ wtmp เริ่มพฤ. 16 ก.ย. 13:29:48 2021

ฉันคาดหวังเหมือนด้านล่าง

testvm:/etc/puppetlabs/code/environments/production/manifests$ สุดท้าย
 azureuse pts/0 Â Â Â Â Â Â 104.46.119.134 Â Â จันทร์ที่ 20 กันยายน 14:29 Â Â ยังเข้าสู่ระบบอยู่
 azureuse pts/1 Â Â Â Â Â Â 104.46.119.134 Â Â จันทร์ 20 ก.ย. 09:52 - 14:35 Â (04:42)
 azureuse pts/0 Â Â Â Â Â Â 104.46.119.134 Â Â จันทร์ 20 ก.ย. 09:10 - 09:53 Â (00:42)
in flag
ขออภัย แต่คุณช่วย [แก้ไข] คำถามเพื่อแก้ไขการจัดรูปแบบได้ไหม ฉันพยายามทำเพื่อคุณ แต่บิตแรกไม่ตรงกับบิตที่สาม และบล็อกคำพูดตรงกลางดูเหมือนว่าคัดลอก/วางจาก 3 แหล่งที่แตกต่างกัน ตรวจสอบให้แน่ใจว่าได้รวมเวอร์ชันของ Ubuntu ที่คุณใช้งานอยู่ด้วย เนื่องจากจะทำให้ง่ายต่อการให้คำแนะนำที่เฉพาะเจาะจง
pLumo avatar
in flag
"*ไม่เป็นไปตามรูปแบบที่ฉันคาดไว้*" คุณคาดหวังรูปแบบใด โปรดเพิ่มเอาต์พุตตัวอย่าง และบอกเราด้วยว่าคุณพยายามทำอะไร
hariraj avatar
cn flag
คาดหวังค่าที่คั่นด้วยเครื่องหมายจุลภาคเช่น csv
cn flag
Ray
ฉันเข้าใจแล้วว่าทำไมคุณถึงชอบ แต่รูปแบบที่ "last" ให้มานั้นเป็นเพียงข้อความธรรมดาที่มีอักขระเว้นวรรคระหว่างแต่ละช่อง ดังนั้น ในตัวอย่างของคุณ มีการเว้นวรรคระหว่าง `134` กับ `Mon` และระหว่าง `Mon` กับ `Sep` หากต้องการแยกก็ต้องเขียนโปรแกรมแยกวิเคราะห์เอง....
hariraj avatar
cn flag
มันเป็นข้อความปกติเท่านั้น แต่ในขณะเดียวกันฉันต้องการใส่ข้อความเดียวกันลงในไฟล์เมื่อต่อท้ายไฟล์ข้อมูลทั้งหมดได้รับการแก้ไข ดังนั้นฉันไม่ต้องการ มีวิธีที่จะทำให้เหมือนกันหรือไม่?
Score:0
ธง cn

คุณสามารถใช้ได้ utmpdump เพื่อถ่ายโอนข้อมูล /var/log/wtmp:

utmpdump < /var/log/wtmp | IFS=\] mapfile -d \[; a=("${MAPFILE[@]%% *}"); ไอเอฟเอส=,; สำหรับ ((i=0; i<${#a[@]}; i+=8)); ทำ echo "${a[*]:$i:8}"; เสร็จแล้ว

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา