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

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

6
แปลงเอาต์พุตของคำสั่ง tree เป็นรูปแบบ json
มีวิธีที่สะดวกในการแปลงเอาต์พุตของคำสั่ง * nix "tree" เป็นรูปแบบ JSON หรือไม่? แก้ไข: ฉันคิดว่าฉันไม่ได้อธิบายปัญหาของฉันได้ดีพอ เป้าหมายของฉันคือการแปลงสิ่งที่ชอบ: . |-- dir1 | |-- dirA | | |-- dirAA | | `-- dirBB | `-- dirB `-- dir2 |-- dirA `-- dirB เป็น: {"dir1" : [{"dirA":["dirAA", "dirAB"]}, "dirB"], "dir2": ["dirA", "dirB"]}

4
การสร้างสตรีมเอาต์พุตเดี่ยวจากสามสตรีมอื่นที่สร้างแบบขนาน
ฉันมีข้อมูลสามชนิดที่มีรูปแบบต่างกัน สำหรับแต่ละชนิดข้อมูลมีสคริปต์ Python ที่แปลงเป็นรูปแบบรวมเป็นหนึ่งเดียว สคริปต์ Python นี้ช้าและ CPU ที่ถูกผูกไว้ (เพื่อหลักเดียวในเครื่องแบบ multi-core) ดังนั้นฉันต้องการที่จะทำงานสามกรณีของมัน - หนึ่งสำหรับแต่ละชนิดข้อมูล - sortและรวมการส่งออกของพวกเขาจะผ่านมันเข้าไป โดยทั่วไปเทียบเท่ากับสิ่งนี้: { ./handle_1.py; ./handle_2.py; ./handle_3.py } | sort -n แต่ด้วยสามสคริปต์ที่ทำงานในแบบคู่ขนาน ฉันพบคำถามนี้ที่ GNU splitถูกใช้เพื่อปัดเศษสตรีม stdout บางส่วนระหว่าง n อินสแตนซ์ของสคริปต์ที่จัดการสตรีม จากหน้าแยกคน: -n, --number=CHUNKS generate CHUNKS output files. See below CHUNKS may be: N split into N files …


4
เรียงลำดับฟิลด์แบบอินไลน์
ฉันพยายามจัดเรียงภายในบรรทัดอินพุตที่มีจำนวนฟิลด์ที่ไม่รู้จัก: การป้อนข้อมูล: ab bc bc ab cd ef bc bc cd ef cd bc ab ef ab bc cd gh เอาท์พุท: ab bc ab bc bc cd ef bc cd ef ab cb cd ab bc cd ef gh ฉันใช้สิ่งที่คล้ายกันawk '{if($2 < $1) print $2,$1;else print}'แต่ดูเหมือนว่ามันจะยุ่งมากกว่าสองสาขา ความช่วยเหลือใด ๆ

7
รับค่า ASCII ตัวเลขสำหรับอักขระ
ฉันพยายามเขียนเชลล์สคริปต์ที่ขออักขระ ASCII ในช่วง AZ หรือ az และส่งกลับค่าตัวเลขที่เทียบเท่ากัน ตัวอย่างเช่นผลลัพธ์อาจมีลักษณะดังต่อไปนี้: scarlet$ Please type a character between A and Z or between a and z: scarlet$ A scarlet$ The decimal value of A is: 65 ความพยายามของฉัน: #!/bin/bash echo Enter a letter: read A echo -n ${A} | od -i | head -1 | …

2
เชลล์สคริปต์: ฉันจะเขียนเนื้อหาหลายบรรทัดไปยังไฟล์ได้อย่างไรหากไฟล์ไม่มีอยู่?
ฉันต้องการสร้างไฟล์/opt/nginx/conf.d/default.confด้วยเนื้อหานี้ผ่านเชลล์สคริปต์และสร้างไฟล์หากไม่มีอยู่: server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; } ฉันจะเขียนเนื้อหาหลายบรรทัดผ่านเชลล์สคริปต์ได้อย่างไร ฉันสร้างไดเรกทอรี sudo mkdir -p /opt/nginx/conf.d แต่ฉันไม่รู้วิธีเขียนไฟล์


5
ลบรายการที่ซ้ำตามค่าของคอลัมน์อื่น
ฉันมีไฟล์ต่อไปนี้: AA,true AA,false BB,false CC,false BB,true DD,true trueฉันพยายามที่จะมองหาที่ซ้ำกันและลบบรรทัดที่มีค่าเท่ากับคอลัมน์ ตามที่ควรเป็น: AA,false BB,false CC,false DD,true

5
awk sed ถ้ามีคำสั่ง
ฉันกำลังพยายามเพิ่ม 0 ถึงจุดเริ่มต้นหากมี "" ที่อักขระที่ 2 ของบรรทัดนั้น ฉันไม่สามารถรวมสองสิ่งนี้เข้าด้วยกันได้ awk '{ print substr( $0, 2, 1 ) }' file.txt แสดงตัวอักษรที่สอง sed -ie "s/.\{0\}/0/" file.txt เพิ่มศูนย์ถึงจุดเริ่มต้น ควรมี "ถ้าอักขระตัวที่สองคือจุด" ไฟล์ตัวอย่าง: 1.02.2017 23:40:00 10.02.2017 23:40:00 สุดท้าย: 01.02.2017 23:40:00 10.02.2017 23:40:00

1
วิธีรับแถวที่คอลัมน์ n ประกอบด้วยคอลัมน์ mth
ฉันมีไฟล์ CSV ที่มีโดเมนและเว็บเมลเช่นนี้ site1.com,mail.site1.com site2.com,testmail.com site3.com,mx.site3.com site4.com,smtp.site4.com site5.com,foomail.com site6.com,barmail.com site7.com,webmail.site7.com site8.com,01mx.site8.com site9.com,foobarmail.com site10.com,mx-smtp222.site10.com ฉันต้องการรับแถวที่คอลัมน์เว็บเมลมีคอลัมน์โดเมนของแถวเดียวกัน สำหรับตัวอย่างข้างต้นผลลัพธ์ควรเป็น: site1.com,mail.site1.com site3.com,mx.site3.com site4.com,smtp.site4.com site7.com,webmail.site7.com site8.com,01mx.site8.com site10.com,mx-smtp222.site10.com

4
วิธีเพิ่มตัวนับบรรทัดสำหรับการแทนที่การเริ่มต้นบรรทัดด้วย AWK / …
ครั้งแรกที่ฉันคิดเกี่ยวกับ SED ( sed "s/^/COUNTER \&/" /tmp/1.tex) แต่มันถูกออกแบบมาสำหรับบรรทัดเดียวและฉันไม่สามารถเพิ่มตัวนับได้ด้วยความคิดดังนั้นตอนนี้awkเพราะฉันมีประสบการณ์ที่ยอดเยี่ยมด้วยgawkวิธีการแบบบูรณาการ ข้อมูล What & South Dragon & North Dragon & 5 \\ \hline What & South Dragon & North Dragon & 5 \\ \hline What & South Dragon & North Dragon & 5 \\ \hline ผลลัพธ์ที่คาดหวัง 1 & What & South Dragon & …

5
แก้ไขค่าในไฟล์ txt ด้วยคำสั่ง sed / awk / grep
เป็นเวลา 5 ปีที่ฉันใช้สถานีอากาศ La Crosse WS2350 ข้อมูลจากสถานีตรวจอากาศถูกประมวลผลด้วย open2300 บน RPI มันใช้งานได้ดีมาก อย่างไรก็ตามข้อมูลอุณหภูมิเป็นเท็จ (เซ็นเซอร์) ข้อมูลอุณหภูมิลดลง 1 ° C เนื่องจากฉันไม่สามารถปรับเทียบเซ็นเซอร์ได้ฉันต้องการเปลี่ยนค่าอุณหภูมิจากไฟล์ที่แยกจากสถานีตรวจอากาศ ไฟล์ข้อความนี้ (current.txt) ประกอบด้วย: Date 2016-Dec-03 Time 10:30:29 Ti 11.9 Timin 11.6 Timax 27.7 TTin 10:34 DTimin 2016-01-19 TTimax 00:44 DTimax 2016-08-28 To -2.4 Tomin -4.8 Tomax 37.4 TTomin 06:46 DTomin 2016-02-18 TTomax …

4
วิธีการพิมพ์บรรทัดที่ 15 และ 25 ของแต่ละ 50 บรรทัด
ฉันมีไฟล์ขนาดใหญ่และฉันต้องการพิมพ์จากแต่ละลำดับ 50 บรรทัดที่15และวันที่ 25เส้น sed -n '15,25p' inputfile วิธีแก้ไขคำสั่งนี้เพื่อพิมพ์เฉพาะบรรทัดที่ 15 และ 25 และวนรอบแต่ละ 50 บรรทัดในไฟล์

4
คำถามเกี่ยวกับ awk
ตกลงเนื่องจากเป็นคำถามที่ซับซ้อนฉันจะอธิบายอย่างชัดเจน ฉันได้ไฟล์เนื้อหาที่แสดงด้านล่าง: $ Cat File1 ABC Cool Lol POP {MNB} ABC Cool Lol POP {MNB} ABC Cool Lol POP {MNB} ABC Cool Lol POP {TBMKF} ABC Cool Lol POP {YUKER} ABC Cool Lol POP {EFEFVD} ผลลัพธ์ที่ฉันต้องการ -Cool MNB + POP ; -Cool MNB + POP ; -Cool MNB + POP …

3
แทนที่การเว้นวรรคสองครั้งทั้งหมดหลังจากสิ้นสุดประโยคด้วยช่องว่างเดียว
ฉันติดอยู่รวมทั้งการแสดงออกปกติด้วยคำสั่ง sed ถาม:ฉันต้องการแทนที่การเว้นวรรคสองครั้งหลังจากสิ้นสุดประโยคด้วยการเว้นวรรคหนึ่งครั้ง นี่คือสิ่งที่ฉันทำ: sed 's/^ $/^$/' file และมันไม่ได้แทนที่ช่องว่างสองช่องด้วยช่องว่างหนึ่งช่องหลังจากประโยคสิ้นสุด เอาท์พุทที่ฉันได้รับ: This is the output. Hello Hello ผลลัพธ์ที่ฉันต้องการ: This is the output. Hello Hello

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