คำถามติดแท็ก awk

AWK เป็นภาษาที่ใช้ประมวลผลข้อความ ส่วนใหญ่จะใช้ในการจัดการและประมวลผลข้อมูลที่มีโครงสร้างและเพื่อสร้างรายงาน

2
จัดเรียงตาม ID จากนั้นเรียงลำดับตามวันที่จากนั้นลบบรรทัดที่มีวันที่เก่ากว่าออก
ฉันมีไฟล์ที่คั่นด้วยแท็บสองไฟล์ แต่ละไฟล์มีโครงสร้างดังนี้: ID Title Rating Date_Rated สิ่งที่ฉันต้องการจะทำคือการรวมไฟล์เหล่านี้ทั้งหมดเป็นไฟล์เดียวและเก็บคะแนนล่าสุดเท่านั้น file1 อาจมีข้อมูลเช่น: 70202148 Sherlock Holmes: A Game of Shadows 5 28/12/13 file2 อาจมีข้อมูลเช่น: 70202148 Sherlock Holmes: A Game of Shadows 4.5 25/12/13
sed  sorting  awk  uniq  join 

1
การรวมเปลือก Bourne และ awk
นี่คือไฟล์จริงของฉัน WASfile #!/bin/sh sed -i '/^ *$/d' WASfile sed -i -e '/user=/,/group_1=/{w /tmp/1' -e 'd}' /home/wasdm/WASfile; Script to Add read -p "Press [Enter] to continue for Installation" ตอนนี้ฉันต้องการวางสคริปต์ต่อไปนี้ที่Script เพื่อเพิ่มด้านบนแล้วเรียกใช้งาน WASfile เป็นสคริปต์ (ซึ่งเป็นการรวมกันของสคริปต์หรือคำสั่งจำนวนมาก) #!/usr/bin/awk -f BEGIN { FS="=" } NR==FNR { a[$1]=$0; next } $1 in a { $0=a[$1] } /^#/ …
shell  awk 

1
Script shell ได้รับรหัสและกระบวนการฆ่า
ได้โปรดฉันไม่พบข้อผิดพลาดในคำสั่งของฉัน ssh -t root@$machine -x "sshpass -p 'ubuntu' ssh -t root@$address -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/nul -x 'ps -ef | grep "myprocess" | awk {print $2} | xargs kill'" ฉันมีข้อผิดพลาดนี้: awk: line 2: missing } near end of file คุณมีความคิดหรือไม่?

1
คำสั่ง awk หลายคำติดต่อกัน
ฉันใช้คำสั่ง awk เพื่อแยกข้อมูลบางส่วน ประเด็นก็คือฉันต้องใช้คำสั่ง awk หลายครั้งเพื่อแยกข้อมูลทั้งหมดที่ฉันต้องการและทุกครั้งที่ฉันใช้ awk ฉันต้องสร้างไฟล์ชั่วคราว โครงสร้างของฉันมีลักษณะดังนี้: awk script1 output.txt > temp1.txt awk script2 temp1.txt > temp2.txt awk script3 temp2.txt > Final_output.txt rm temp1.txt temp2.txt มีวิธีกำจัดไฟล์ชั่วคราวหรือไม่? การเรียกใช้งานหลายคำสั่งอย่างต่อเนื่อง?
awk 

2
สร้างไฟล์ใหม่ที่มีโครงสร้างเฉพาะจากไฟล์ข้อความ
บน Linux orig-file.txtฉันมีไฟล์ ไฟล์นี้มี 4 ฟิลด์ในขณะนี้ แต่อาจน้อยกว่านี้ (ไฟล์นี้สร้างโดยแอปพลิเคชันอื่น) ตัวเลือกที่ดีที่สุดในการแปลorig-file.txtไฟล์เป็นไฟล์เช่นอะไรoutput-file.txt(อาจเป็นได้ด้วยเชลล์สคริปต์หรือ awk เป็นต้น) orig-file.txt CREATE_TIMESTAMP TELEPHONE_NUMBER ID TYPE ------------------- -------------------- ---------- ----------------- 24-09-2009 16:17:45 33633333333 20 other_mmm_phone 24-09-2009 17:45:07 33644444444 20 other_mmm_phone 07-10-2009 10:45:49 12312312312 20 legacyphone 07-10-2009 11:46:38 59320000043 20 other_mmm_phone ผลผลิต file.txt CREATE_TIMESTAMP -> 24-09-2009 16:17:45 TELEPHONE_NUMBER -> 33633333333 ID …

2
ทำไมฉันไม่สามารถเปลี่ยนเส้นทางผลลัพธ์จาก awk ได้
ฉันได้เขียนรายการนี้เพื่อแสดงการอ่าน / เขียน MB ทุก 5 วินาที #!/bin/bash #iosum.sh iostat -dmz 5 |\ awk 'BEGIN{rx=wx=0}{if($0 == ""){printf"%.1f %.1f\n",rx,wx}else if($0~/^Device:/){rx=wx=0}else{rx+=$3;wx+=$4}}' เมื่อทำงานจากบรรทัดคำสั่งมันทำงานได้อย่างสมบูรณ์ ./iosum.sh # wait 1.1 0.0 0.0 0.1 0.0 0.0 3.0 3.0 0.0 0.0 # ctrl-c อย่างไรก็ตามเมื่อฉันพยายามใส่ผลลัพธ์ลงในไฟล์ฉันจะไม่ได้อะไรเลย ./iosum.sh > out.txt # wait # ctrl-c cat out.txt # nothing! สิ่งที่ช่วยให้?

1
การแก้ไขสตรีม CSV AWK รวมคอลัมน์ที่สามสำหรับคอลัมน์แรกเหมือนกันเมื่อคอลัมน์ที่สอง> = 0
ฉันใช้ Windows และเคยได้ยิน linuxes awk และอื่น ๆ เท่านั้นดังนั้นฉันจึงจินตนาการได้ว่านี่เป็นไปได้โดยไม่ต้องใช้สคริปต์จริง: ฉันมีข้อมูลเช่น .. 162 42 A single serving 162 62 of french fries, please 164 -1 ABC 164 -1 1 .. ที่ฉันอยากจะกลายเป็น .. A single serving of french fries, please .. ดังนั้นกฎจะเป็น รวมคอลัมน์ที่สามสำหรับคอลัมน์แรกที่เหมือนกันเมื่อคอลัมน์ที่สอง> = 0 ฉันจะพยายามหา awk สำหรับ Windows

1
การใช้ nawk จะพิมพ์ชื่อแรกให้กับทุกคนในรหัสพื้นที่ 916 ได้อย่างไร [ซ้ำ]
ซ้ำกันได้: การใช้ nawk จะพิมพ์ชื่อทั้งหมดที่มีอักขระสี่ตัวได้อย่างไร การใช้ nawk จะพิมพ์ชื่อแรกให้กับทุกคนในรหัสพื้นที่ 916 ได้อย่างไร ฉันได้ลอง nawk awk $ 3 ~ / (916) / {พิมพ์ $ 1} input inputfile แต่ใช้งานไม่ได้ โจดี้ซาเวจ: (206) 548-1278: 15: 188: 150 Guy Quigley: (916) 343-6410: 250: 100: 175 แดนซาเวจ: (406) 298-7744: 450: 300: 275 Nancy McNeil: (206) 548-1278: 250: 80: 75 …
-1 linux  awk 

1
วิธีการแสดงส่วนเฉพาะจากบรรทัดใน linux?
สมมติว่าฉันมีไฟล์ที่มีบรรทัดต่อไปนี้: [{"name”:”10.0.0.1”,”address":"10.0.0.1”,”subscriptions["all"],"version":"0.0.0”,”timestamp":1450270166},{"name":"10.0.0.2","address":"10.0.0.2","subscriptions":["all"],"version”:”0.0.0”,”timestamp":1450390819}] ที่นี่ฉันต้องได้รับผลลัพธ์ที่ต้องการ name:10.0.0.1 name:10.0.0.2 ความคิดใด ๆ
-1 linux  command-line  bash  sed  awk 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.