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

รูปแบบการสแกนและการประมวลผลภาษา

8
ฉันจะแทนที่สตริงในไฟล์ได้อย่างไร?
การแทนที่สตริงในไฟล์ตามเกณฑ์การค้นหาบางอย่างเป็นงานที่พบบ่อยมาก ฉันสามารถ แทนที่สตริงfooด้วยbarในไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันหรือไม่ ทำแบบเดียวกันซ้ำสำหรับไดเรกทอรีย่อย? แทนที่เฉพาะถ้าชื่อไฟล์ตรงกับสายอื่น? แทนที่เฉพาะในกรณีที่พบสตริงในบริบท? แทนที่หากสตริงอยู่ในหมายเลขบรรทัดที่แน่นอน? แทนที่สตริงจำนวนมากด้วยการแทนที่เดียวกัน แทนที่หลายสตริงด้วยการแทนที่ที่แตกต่างกัน
752 text-processing  awk  sed  perl 

7
มีการสอนพื้นฐานสำหรับ grep, awk และ sed หรือไม่? [ปิด]
ฉันเคยเป็นผู้ใช้ลีนุกซ์มาระยะหนึ่งแล้วและฉันก็เข้าใจดีมากเกี่ยวกับยูทิลิตี้บรรทัดคำสั่งทั่วไป แต่คนที่มาขึ้นและขึ้นอีกครั้งในความสัมพันธ์กับการเขียนโปรแกรมgrep, และawksed เกี่ยวกับสิ่งเดียวที่ฉันใช้ grep สำหรับคือการวางข้อมูลลงในไฟล์เพื่อค้นหาไฟล์ในล็อกไฟล์ผลลัพธ์ของไฟล์psอื่น ๆ ที่ฉันไม่ได้ใช้awkหรือsedเลย มีแบบฝึกหัดที่ดีสำหรับสาธารณูปโภคเหล่านี้หรือไม่?
95 grep  sed  awk 

18
มีวิธีการรับ min, max, มัธยฐานและค่าเฉลี่ยของรายการตัวเลขในคำสั่งเดียวหรือไม่?
ฉันมีรายการตัวเลขในไฟล์หนึ่งรายการต่อบรรทัด ฉันจะรับค่าต่ำสุดสูงสุดค่ามัธยฐานและค่าเฉลี่ยได้อย่างไร ฉันต้องการใช้ผลลัพธ์ในสคริปต์ทุบตี แม้ว่าสถานการณ์ปัจจุบันของฉันจะเป็นจำนวนเต็ม แต่วิธีแก้ปัญหาสำหรับเลขทศนิยมจะเป็นประโยชน์ในบรรทัด
93 bash  awk  arithmetic  bc 

10
แสดงผลรวมของขนาดไฟล์ในรายการไดเรกทอรี
dirคำสั่งรายชื่อไดเรคทอรี Windows มีบรรทัดที่ท้ายแสดงจำนวนพื้นที่ทั้งหมดที่ใช้โดยไฟล์ที่แสดง ตัวอย่างเช่นdir *.exeแสดง.exeไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันขนาดและผลรวมทั้งหมดของขนาด ฉันชอบที่จะมีฟังก์ชั่นที่คล้ายกันกับdirนามแฝงของฉันในทุบตี แต่ฉันไม่แน่ใจว่าจะทำอย่างไร ขณะนี้ฉันมีalias dir='ls -FaGl'ในของฉัน.bash_profileแสดง drwxr-x---+ 24 mattdmo 4096 Mar 14 16:35 ./ drwxr-x--x. 256 root 12288 Apr 8 21:29 ../ -rw------- 1 mattdmo 13795 Apr 4 17:52 .bash_history -rw-r--r-- 1 mattdmo 18 May 10 2012 .bash_logout -rw-r--r-- 1 mattdmo 395 Dec 9 17:33 .bash_profile …
71 bash  shell-script  awk  ls 

7
แสดงไฟล์ทั้งหมดจนถึงการแข่งขัน
grep --before-context 5 แสดง 5 บรรทัดก่อนการแข่งขัน ฉันต้องการแสดงทุกอย่างก่อนการแข่งขัน การgrep --before-context 99999999ทำงานจะได้ผล แต่มันไม่ได้เป็นมืออาชีพมากนัก วิธีการแสดงไฟล์ทั้งหมดถึงการแข่งขัน?

5
ลบบรรทัดที่มีสตริงที่แน่นอนและบรรทัดต่อไปนี้
ฉันใช้สิ่งนี้ cat foo.txt | sed '/bar/d' เพื่อลบบรรทัดที่มีสตริงbarในไฟล์ ฉันต้องการ แต่จะลบเส้นที่และสายโดยตรงหลังจากที่มัน โดยเฉพาะอย่างยิ่งในsed, awkหรือเครื่องมืออื่น ๆ ที่มีอยู่ใน MinGW32 มันเป็นสิ่งที่ตรงกันข้ามกับสิ่งที่ฉันสามารถเข้าgrepกับ-Aและ-Bพิมพ์บรรทัดที่ตรงกันรวมถึงบรรทัดก่อน / หลังบรรทัดที่ตรงกัน มีวิธีง่าย ๆ เพื่อให้บรรลุหรือไม่

7
วิธีอ่านบรรทัดแรกและบรรทัดสุดท้ายจากเอาต์พุต cat?
ฉันมีไฟล์ข้อความ งาน - รับบรรทัดแรกและบรรทัดสุดท้ายจากไฟล์หลังจาก $ cat file | grep -E "1|2|3|4" | commandtoprint $ cat file 1 2 3 4 5 ต้องการสิ่งนี้โดยไม่ต้องใช้เอาต์พุต cat (เพียง 1 และ 5) ~$ cat file | tee >(head -n 1) >(wc -l) 1 2 3 4 5 5 1 อาจจะมีวิธีแก้ปัญหาที่สั้นลงและสั้นลงกว่าเดิม ...
64 bash  shell  sed  awk  grep 

5
การใช้ awk เพื่อรวมค่าของคอลัมน์ตามค่าของคอลัมน์อื่น
awkฉันพยายามที่จะสรุปตัวเลขบางอย่างในคอลัมน์โดยใช้ ฉันต้องการรวมเพียงคอลัมน์ 3 ของ "smiths" เพื่อรับรวม 212 ฉันสามารถรวมคอลัมน์ทั้งหมดโดยใช้awkแต่ไม่ใช่แค่ "smiths" ฉันมี: awk 'BEGIN {FS = "|"} ; {sum+=$3} END {print sum}' filename.txt นอกจากนี้ฉันกำลังใช้ผงสำหรับอุดรู ขอบคุณสำหรับความช่วยเหลือ smiths|Login|2 olivert|Login|10 denniss|Payroll|100 smiths|Time|200 smiths|Logout|10
63 linux  awk 

5
ส่งผ่านตัวแปรเชลล์เป็น / pattern / ไปยัง awk
มีดังต่อไปนี้ในหนึ่งในฟังก์ชั่นเปลือกของฉัน: function _process () { awk -v l="$line" ' BEGIN {p=0} /'"$1"'/ {p=1} END{ if(p) print l >> "outfile.txt" } ' } ดังนั้นเมื่อเรียกว่าเป็น_process $arg, $argได้รับการส่งผ่านเป็น$1และนำมาใช้เป็นรูปแบบการค้นหา มันทำงานได้ด้วยวิธีนี้เพราะเชลล์ขยาย$1แทนรูปแบบ awk! นอกจากนี้ยังlสามารถนำมาใช้ภายในโปรแกรม awk -v l="$line"ถูกประกาศด้วย ทุกอย่างดี เป็นไปได้หรือไม่ที่จะให้รูปแบบการค้นหาเป็นตัวแปร การติดตามจะไม่ทำงาน awk -v l="$line" -v search="$pattern" ' BEGIN {p=0} /search/ {p=1} END{ if(p) print l >> "outfile.txt" …
59 shell  awk  quoting  variable 

9
วิธีการแยก JSON ด้วยเชลล์สคริปต์ใน Linux?
ฉันมีเอาต์พุต JSON ซึ่งฉันต้องการแยกพารามิเตอร์บางอย่างใน Linux นี่คือเอาต์พุต JSON: { "OwnerId": "121456789127", "ReservationId": "r-48465168", "Groups": [], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "RootDeviceType": "ebs", "State": { "Code": 16, "Name": "running" }, "EbsOptimized": false, "LaunchTime": "2014-03-19T09:16:56.000Z", "PrivateIpAddress": "10.250.171.248", "ProductCodes": [ { "ProductCodeId": "aacglxeowvn5hy8sznltowyqe", "ProductCodeType": "marketplace" } ], "VpcId": "vpc-86bab0e4", "StateTransitionReason": …

1
ความแตกต่างระหว่าง gawk กับ awk
พยายามที่จะเข้าใจความแตกต่างระหว่างฟังก์ชั่นทั้งสองเพ่งพิศเมื่อเทียบกับ awk? เมื่อใดที่หนึ่งที่จะใช้ gawk vs awk? หรือพวกเขาจะเหมือนกันในแง่ของการใช้งาน? นอกจากนี้หนึ่งสามารถให้ตัวอย่างได้หรือไม่
50 awk  gawk 

2
การแทนที่สตริงตามหมายเลขบรรทัด
ฉันมีสถานการณ์ที่ฉันต้องการแทนที่สตริงเฉพาะในไฟล์จำนวนมาก แทนที่สตริงAAAด้วยสตริงBBBอื่นแต่มีจำนวนมากของสตริงที่เริ่มต้นด้วย AAA หรือสิ้นสุดใน AAA และฉันต้องการที่จะแทนที่เพียงหนึ่งในบรรทัดที่ 34 และให้คนอื่น ๆ เหมือนเดิม เป็นไปได้หรือไม่ที่จะระบุด้วยหมายเลขบรรทัดบนไฟล์ทั้งหมดสตริงนี้ตรงกับบรรทัดที่ 34
50 sed  awk 

16
ลบรายการ $ PATH ซ้ำด้วยคำสั่ง awk
ฉันพยายามเขียนฟังก์ชัน bash shell ที่จะอนุญาตให้ฉันลบสำเนาของไดเรกทอรีที่ซ้ำกันออกจากตัวแปรสภาพแวดล้อม PATH ของฉัน ฉันถูกบอกว่าเป็นไปได้ที่จะบรรลุสิ่งนี้ด้วยคำสั่งหนึ่งบรรทัดโดยใช้awkคำสั่ง แต่ฉันไม่สามารถหาวิธีที่จะทำได้ มีใครรู้บ้าง
48 bash  shell  awk  path 

4
ย้อนกลับ grepping
สมมติว่าฉันมีไฟล์ข้อความขนาดใหญ่จริงๆ (ประมาณ 10.000.000 บรรทัด) ฉันต้องการgrepมันจากตอนท้ายและบันทึกผลลัพธ์ลงในไฟล์ วิธีที่มีประสิทธิภาพที่สุดในการทำงานให้สำเร็จคืออะไร?

5
วิธีการเรียกใช้ grep ในคอลัมน์เดียว?
ฉันต้องการ grep ผลลัพธ์ของls -lคำสั่งของฉัน: -rw-r--r-- 1 root root 1866 Feb 14 07:47 rahmu.file -rw-r--r-- 1 rahmu user 95653 Feb 14 07:47 foo.file -rw-r--r-- 1 rahmu user 1073822 Feb 14 21:01 bar.file ฉันต้องการเรียกใช้grep rahmuในคอลัมน์ $ 3 เท่านั้นดังนั้นผลลัพธ์ของgrepคำสั่งของฉันควรมีลักษณะเช่นนี้: -rw-r--r-- 1 rahmu user 95653 Feb 14 07:47 foo.file -rw-r--r-- 1 rahmu user 1073822 …
42 grep  awk 

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