คำถามติดแท็ก text-processing

การจัดการหรือตรวจสอบข้อความโดยโปรแกรมสคริปต์ ฯลฯ

3
คำสั่งวาง: การตั้งค่าตัวคั่น (หลาย)
ใน Linux ฉันมีปัญหาดังต่อไปนี้ด้วยpasteจาก (GNU coreutils) 8.13: การพยายามตั้งค่าตัวคั่นอื่นนอกเหนือจากค่าเริ่มต้น (TAB) จะทำให้เกิดการพิมพ์อักขระตัวแรกของตัวคั่นที่กำหนดหรือเพิกเฉยได้อย่างสมบูรณ์ คำถาม : หนึ่งกำหนดตัวคั่น (หลาย) วิธีเมื่อใช้ paste ? เพียงใช้เช่นabc-123เนื่องจากตัวคั่นจะดี ด้วย "หลาย" ฉันหมายถึงเช่น 2 TABS แทนที่จะเป็นหนึ่ง รูปแบบที่ล้อมรอบตัวคั่นที่ฉันได้ลองไปแล้วคือ --delimiters="\delimiter" --delimiters='\delimiter' --delimiters=$"\delimiter" --delimiters=$'\delimiter' ทั้งหมดที่มีผลลัพธ์เดียวกัน: ยอมรับเฉพาะอักขระตัวแรกหรือละเว้นอย่างสมบูรณ์ ฉันได้ลองใช้เวอร์ชันย่อ-d"\"และหลายอินสแตนซ์แล้ว & ndahs; ไม่มีอะไร นอกจากนี้: --delimiters="\\" →ข้อความผิดพลาด ทำงานได้อย่างสมบูรณ์แบบแม้ว่าจะไม่ใช่สิ่งที่ฉันต้องการ: --delimiters="\n" →ขึ้นบรรทัดใหม่ --delimiters="\0" →ไม่มีอะไรในระหว่าง --delimiters="\t"→ TABค่าเริ่มต้น ยิ่งใหญ่

7
แทนที่อักขระยกเว้นการเกิด x ครั้งล่าสุด
ฉันมีไฟล์ที่มีชื่อโฮสต์มากมายสัมพันธ์กับ IP ที่มีลักษณะดังนี้: x-cluster-front-1 192.168.1.2 x-cluster-front-2 192.158.1.10 y-cluster-back-1 10.1.11.99 y-cluster-back-2 10.1.157.38 int.test.example.com 59.2.86.3 super.awesome.machine 123.234.15.6 ฉันอยากให้มันเป็นแบบนี้: x-cluster-front-1 192.168.1.2 x-cluster-front-2 192.158.1.10 y-cluster-back-1 10.1.11.99 y-cluster-back-2 10.1.157.38 int-test-example-com 59.2.86.3 super-awesome-machine 123.234.15.6 ฉันจะแทนที่ (จุด) จากคอลัมน์แรกด้วย - (เครื่องหมายขีดกลาง) เพื่ออำนวยความสะดวกในการจัดเรียงตามคอลัมน์ที่สอง? ฉันกำลังคิดที่จะใช้ sed เพื่อแทนที่จุดจนถึงช่องว่างแรกหรือแทนที่จุดทุกจุดยกเว้นสามจุดสุดท้าย แต่ฉันมีปัญหาในการเข้าใจ regex และ sed ฉันสามารถทำการทดแทนแบบง่าย ๆ แต่นี่เป็นวิธีเหนือหัวของฉัน! นี่เป็นส่วนหนึ่งของสคริปต์ที่ใหญ่กว่าที่ฉันเขียนด้วยการทุบตี ฉันติดอยู่ที่ส่วนนี้

2
กำลังประมวลผลสองไฟล์โดยใช้ awk
ผมอ่านเปรียบเทียบสองไฟล์โดยใช้ Unix และ Awk มันน่าสนใจจริงๆ ฉันอ่านและทดสอบ แต่ไม่สามารถเข้าใจได้อย่างสมบูรณ์และใช้ในกรณีอื่น ฉันมีสองไฟล์ file1มีหนึ่งฟิลด์และอีกฟิลด์หนึ่งมี 16 ฟิลด์ ฉันต้องการที่จะอ่านองค์ประกอบของfile1 file2และเปรียบเทียบกับข้อมูลที่ หากมีการแข่งขันสำหรับแต่ละองค์ประกอบ, I คุ้มค่าผลรวมของสนามที่ 5 file2ใน ตัวอย่างเช่น: ไฟล์ 1 1 2 3 ไฟล์ 2 2 2 2 1 2 3 6 1 2 4 4 1 1 2 3 6 3 3 3 4 สำหรับองค์ประกอบ 1 ในfile1ฉันต้องการที่จะเพิ่มค่าในสาขาที่ 5 …

1
วิธีผสานสองไฟล์ในแถวที่สอดคล้องกันได้อย่างไร
ตอนนี้ฉันมีสองไฟล์: aaaa.txt: a=0; b=1; c=2; bbbb.txt: d=3 e=4 f=5 ฉันต้องการที่จะผสานaaaa.txtและการbbbb.txtcccc.txt cccc.txt ดังต่อไปนี้: a=0;d=3 b=1;e=4 c=2;f=5 ดังนั้นฉันจะทำอะไรได้บ้าง

5
เปรียบเทียบสองไฟล์กับคอลัมน์แรกและลบแถวที่ซ้ำกันออกจากไฟล์ที่ 2 ในเชลล์สคริปต์
ฉันจะถามคำถามของฉันพร้อมตัวอย่าง ฉันมี 2 ไฟล์: ไฟล์ # 1: 118D FC300_R5_TP FX.B 32775 2112 6 2038 6 2112 0 118E FC300_R5_TP FX.B 32775 2136 7 2065 6 2136 0 118F FC300_R5_TP FX.B 32775 2124 6 2064 6 2124 0 1190 FC300_R5_TP FX.B 819210 814632 99 814609 99 814632 0 1191 FC300_R5_TP FX.B …

5
การรวมสองไฟล์ด้วยตัวระบุเฉพาะ
ฉันมีสองไฟล์ที่มีรายการประมาณ 12900 และ 4400 ตามลำดับที่ฉันต้องการเข้าร่วม ไฟล์ดังกล่าวมีข้อมูลตำแหน่งสำหรับสถานีสำรวจสภาพอากาศที่มีที่ดินเป็นฐานทั่วโลก ไฟล์ที่ใหญ่ที่สุดจะได้รับการอัพเดตทุกสองสัปดาห์และมีขนาดเล็กลงปีละครั้งหรือมากกว่านั้น สามารถดูไฟล์ต้นฉบับได้ที่นี่ ( http://www.wmo.int/pages/prog/www/ois/volume-a/vola-home.htmและ http://weather.rap.ucar.edu/surface/ สถานี . txt ) ไฟล์ที่ฉันมีอยู่แล้วถูกจัดการโดยฉันด้วย awk, sed, และ bash script บางตัว ฉันใช้ไฟล์เพื่อให้เห็นภาพข้อมูลโดยใช้แพ็คเกจ GEMPAK ซึ่งสามารถใช้งานได้อย่างอิสระจาก Unidata ไฟล์ที่ใหญ่ที่สุดจะทำงานกับ GEMPAK แต่จะไม่สามารถทำงานได้อย่างเต็มประสิทธิภาพ สำหรับการเข้าร่วมนี้เป็นสิ่งจำเป็น ไฟล์ 1 มีข้อมูลตำแหน่งสำหรับสถานีตรวจสอบสภาพอากาศโดยที่ตัวเลข 6 ตัวแรกคือตัวระบุสถานีที่ไม่ซ้ำกัน พารามิเตอร์ที่แตกต่างกัน (หมายเลขสถานีชื่อสถานีรหัสประเทศละติจูดลองจิจูดและระดับความสูงของสถานี) จะถูกกำหนดโดยตำแหน่งในบรรทัดเท่านั้นนั่นคือไม่มีแท็บ 060090 AKRABERG FYR DN 6138 -666 101 060100 VAGA FLOGHAVN DN 6205 …

1
บันทึก HTML จากคลิปบอร์ดเป็นข้อความมาร์คดาวน์
ฉันต้องการที่จะเน้นส่วนของหน้าเว็บและคัดลอกไปยังคลิปบอร์ดแล้วบันทึกลงในดิสก์ภายในเครื่องของฉันเป็น markdown ฉันต้องการวิธีที่มีประสิทธิภาพในการทำเช่นนั้น วิธีการที่ยุ่งยากในปัจจุบันของฉันคือ: ไฮไลต์ส่วนและคัดลอกไปที่คลิปบอร์ด เปิด Libre Office Writer วางลงใน Writer บันทึก Writer doc เป็น HTML เปิดเทอร์มินัล cd ไปยังไดเรกทอรีที่ฉันบันทึก HTML pandoc -s -r html /home/me/a/b/mydoc.html -o /home/me/a/b/mydoc.md เห็นได้ชัดว่าฉันต้องการวิธีที่ดีกว่า! ข้อเสนอแนะใด ๆ

3
การแก้ไขไฟล์ปรับแต่งด้วยสคริปต์ทุบตี
ฉันพยายามเขียนสคริปต์ทุบตีง่ายๆที่ฉันจะใช้ในการติดตั้งแอปพลิเคชันและอัปเดตเป็นไฟล์ปรับแต่ง ฉันมีเวลายากที่จะได้รับมันเป็นไฟล์ปรับเปลี่ยน # DBHost=localhost DBName=test # DBPassword= ข้อเสนอแนะใด ๆ ที่ฉันจะได้รับการแก้ไขดังกล่าวข้างต้น? DBHost=localhost DBName=database DBPassword=password

2
ค้นหาไฟล์ทั้งหมดด้วย Python Shebang
ฉันพยายามเรียกใช้การตรวจสอบ PEP8 เทียบกับแผนภูมิต้นไม้ขนาดใหญ่ แผนผังประกอบด้วยไฟล์ต่าง ๆ ในภาษาต่างๆ แนวคิดคือการตรวจสอบสคริปต์ Python ทั้งหมดโดยไม่ต้องแสดงรายการอย่างชัดเจน ไฟล์เหล่านี้ส่วนใหญ่ไม่มี.pyนามสกุล มีวิธีง่าย ๆ ในการค้นหาไฟล์ทั้งหมดที่มีคำว่า Python ใน shebang หรือค้นหาไฟล์ทั้งหมดที่จะรันด้วย Python เมื่อดำเนินการหรือไม่?

4
วิธีการลบช่องว่างต่อท้ายท้ายบรรทัดในไฟล์ที่กำหนด (มากกว่าหนึ่ง)?
ฉันเลยเบื่อกับช่องว่างที่ไร้ประโยชน์ในไฟล์ต้นฉบับที่ฉันได้กำหนดค่าเป็นกลุ่มเพื่อแสดงให้พวกเขา ปัญหาคือว่าฉันบ่อยมาก (ถ้าไม่เสมอ) ต้องจัดการกับช่องว่างที่ไร้ประโยชน์กับผู้พัฒนาเพื่อนของฉัน ฉันแค่ต้องการสแกนไฟล์ต้นฉบับ (รับนิพจน์ปกติ) และลบช่องว่างออกจากไฟล์ที่กำหนดทั้งหมด ฉันค้นหาในเว็บ ("ทุบตีลบช่องว่าง" ฯลฯ ) แต่ไม่พบสิ่งที่มีประโยชน์

6
เครื่องมือในการสร้างไฟล์ข้อความจากแม่แบบ
ฉันต้องสร้างไฟล์ข้อความมากกว่า 100+ ชุดจากเทมเพลต ฉันใช้เชลล์สคริปต์ที่ซับซ้อนเกินไป ฉันคิดว่ามีวิธีที่ชาญฉลาดในการจัดการสิ่งนี้ แต่ฉันไม่รู้ว่าจะทำอย่างไร ฉันมี "ฐานข้อมูล": # outputfile template data1 data2 data3 first.txt $template_main $text1 abcd 1234 second.txt $template_main $text2 efgh 5678 third.txt $template_other $text1 ij 90 และไฟล์กำหนดค่า: template_main=main.txt template_other=other.txt text1=whatever text2=blah เทมเพลตคือไฟล์ข้อความที่มีตัวยึดตำแหน่งเช่น %% data2 %% (แบบฟอร์มตัวยึดสามารถเปลี่ยนแปลงได้) มีคนรู้จักเครื่องมือในการทำให้สิ่งนี้ดีกว่าด้วยเชลล์สคริปต์ที่ซับซ้อนหรือไม่?

3
จะแทนที่สตริงย่อย UTF-8 ที่เข้ารหัสเปอร์เซ็นต์ทั้งหมดด้วยข้อความ UTF-8 ธรรมดาได้อย่างไร
ฉันมีไฟล์ html ที่มีข้อความ UTF-8 เข้ารหัส%% ใน URL ตัวอย่างเช่น "% D1% 80% D0% B5% D1% 81% D1% 83% D1% 80% D1% 81% D1% 8B" ย่อมาจาก "ресурсы" ("ทรัพยากร" ในรัสเซีย) ภารกิจคือการแทนที่สตริงย่อยทั้งหมดด้วยข้อความ UTF-8 ที่อ่านได้ เพื่อให้งานง่ายขึ้นเราสามารถพิจารณาได้ว่าไม่มี%การใช้เครื่องหมายอื่น ๆในไฟล์ ตัวเลขตัวอักษรสามารถเป็นได้ทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ฉันสงสัยว่านี้สามารถทำได้อย่างหรูหราด้วยsed, perl, awkหรือบางสิ่งบางอย่าง แต่ไม่ทราบว่า เว็บแอปพลิเคชั่นนี้ดูเหมือนจะหลอกลวงด้วยข้อความที่คุณวางไว้ที่นั่น

5
วิธีนับแถวที่เรียงลำดับโดยเขตข้อมูลแรกใน bash
นี่คือตัวอย่างจาก INPUT: ... #################### Bala Bela;XXXXXX12345;XXXXXX12345678;A SERVER345Z3.DOMAIN.com0 SERVER346Z3.DOMAIN.com0 SERVER347Z3.DOMAIN.com0 SERVER348Z3.DOMAIN.com0 ssh-dss ...pubkeyhere... #################### Ize Jova;XXXXXX12345;XXXXXX12345;A SERVER342Z3.DOMAIN.com0 SERVER343Z3.DOMAIN.com0 SERVER345Z3.DOMAIN.com0 ssh-rsa ...pubkeyhere... ... และนี่คือตัวอย่างจากผลลัพธ์ที่ฉันต้องการ: Bala Bela;XXXXXX12345;XXXXXX12345678;A 4 Ize Jova;XXXXXX12345;XXXXXX12345;A 3 ดังนั้นฉันต้องการ OUTPUT จาก INPUT เพื่อที่ฉันจะได้เห็นว่ามีกี่แถวที่ขึ้นต้นด้วย "SERVER" ไปถึงผู้ใช้ที่ให้ไว้ (เช่น: "Bala Bela; XXXXXX12345; XXXXXX12345678; A") ฉันจะทำสิ่งนี้ในทุบตีได้อย่างไร

4
เครื่องมือการวางแผน (ตามข้อความ) ในกล่องเครื่องมือยูนิกซ์หรือไม่
ฉันสงสัยว่ามีเครื่องมือการวางแผนทั่วไปที่มีอยู่ในกล่องเครื่องมือยูนิกซ์หรือไม่? โดยการวางแผนฉันหมายถึงบาร์หรือสิ่งที่คุณเห็นในยูทิลิตี้ที่ใช้คำสาปหลายอย่าง และโดยกล่องเครื่องมือยูนิกซ์ฉันหมายถึงสิ่งที่คุณสามารถท่อข้อมูลลงในพวกเขาโดยใช้แบบแผนมาตรฐานยูนิกซ์ ฉันต้องนับสิ่งในล็อกไฟล์ (ที่ฉันกำลังตรวจสอบด้วยtail -Fหรือบางสิ่งบางอย่าง) และพล็อตอัตราส่วนชีวิตของสิ่งต่าง ๆ (เช่นร้อยละข้อผิดพลาดหรือคำเตือน)

2
การแยกวิเคราะห์ XML, JSON และรูปแบบไฟล์ข้อมูลที่ใหม่กว่าใน UNIX โดยใช้ยูทิลิตี้บรรทัดคำสั่ง
สภาพแวดล้อม Unix มีเครื่องมือที่ยอดเยี่ยมสำหรับการแยกวิเคราะห์ข้อความในรูปแบบต่าง ๆ อย่างไรก็ตามในช่วงปลายข้อมูลไม่ได้อยู่ในรูปแบบดั้งเดิม (ประวัติ) (CSV, TSV, ตามบันทึกหรืออื่น ๆ ตามตัวคั่น) ที่เคยเป็นมาก่อน ข้อมูลวันนี้มีการแลกเปลี่ยนในรูปแบบที่มีโครงสร้างเช่น XML / JSON ฉันรู้ว่ามีเครื่องมือที่ดีเช่น sed, awk และ Perl ซึ่งสามารถเคี้ยวข้อมูลได้เกือบทุกรูปแบบ อย่างไรก็ตามในการทำงานกับข้อมูลที่มีโครงสร้างเช่นนี้มักจะต้องเขียนโปรแกรมที่สมบูรณ์และให้เวลาเล็กน้อยในการดึงข้อมูลเราต้องนั่งลงและคิดตรรกะทั้งหมดของสิ่งที่ต้องการสืบค้นและวาง มันลงโปรแกรม บางครั้งมันก็ไม่เป็นไร - โดยพื้นฐานแล้วเนื่องจากข้อมูลที่ดึงมาจากไฟล์เหล่านั้นทำหน้าที่เป็นอินพุตสำหรับการทำงานต่อไป ก็เพราะเวลาที่ใช้ในการค้นหาโซลูชันที่เหมาะสมและรหัสขึ้น จำเป็นต้องใช้เครื่องมือบรรทัดคำสั่งที่มีสวิตช์เพียงพอที่จะค้นหาสืบค้นและถ่ายโอนข้อมูล ฉันกำลังมองหาเครื่องมือที่ใช้ XML / JSON หรือรูปแบบข้อมูลที่มีโครงสร้างอื่น ๆ แล้วทิ้งลงในรูปแบบอื่น ๆ เช่น csv เป็นต้นเพื่อให้สามารถใช้คำสั่งอื่นเพื่อดึงข้อมูลออกมาได้ มียูทิลิตีบรรทัดคำสั่งใดบ้างที่คุณรู้จักซึ่งเป็นงานประเภทนี้? มีสคริปต์ awk / Perl อยู่ในรายการนี้หรือไม่?

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