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

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

5
เชลล์สคริปต์เพื่อส่งเมลแจ้งเตือนหากการใช้งานดิสก์เกิน 90%
ฉันต้องการติดตั้งสคริปต์บนเซิร์ฟเวอร์ของฉันซึ่งจะส่งการแจ้งเตือนทางอีเมลโดยอัตโนมัติหากการใช้งานดิสก์เกิน 90% และการแจ้งเตือนทางอีเมลครั้งที่สองเมื่อเกินกว่า 95% ระบบแฟ้มของฉันคือและติดประเด็นก็คือabc:/xyz/abc/pqr ฉันได้ลองสิ่งนี้แล้ว: ADMIN="someone@def.com" ALERT=90 df -H | grep -vE 'abc:/xyz/pqr | tmpfs |cdrom' | awk '{ print $5 " " $1 }' | while read output; do usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 ) partition=$(echo $output | awk '{ print $2 …

4
ข้าม 3 ไบต์แรกของไฟล์
ฉันใช้ AIX 6.1 ksh shell ฉันต้องการใช้สายการบินหนึ่งในการทำสิ่งนี้: cat A_FILE | skip-first-3-bytes-of-the-file ฉันต้องการข้าม 3 ไบต์แรกของบรรทัดแรก มีวิธีทำเช่นนี้หรือไม่?

3
จะทำการแทนที่ข้อความในลำดับชั้นของโฟลเดอร์ขนาดใหญ่ได้อย่างไร
ฉันต้องการค้นหาและแทนที่ข้อความในไฟล์จำนวนมากยกเว้นบางกรณี สำหรับแต่ละบรรทัดฉันต้องการให้ฉันถามว่าฉันต้องการแทนที่บรรทัดนั้นหรือไม่ บางสิ่งที่คล้ายกับเสียงเรียกเข้า:%s/from/to/gc(พร้อมกับcเพื่อให้พร้อมรับคำยืนยัน) แต่ข้ามชุดโฟลเดอร์ มีเครื่องมือบรรทัดคำสั่งหรือสคริปต์ที่ดีที่สามารถใช้ได้หรือไม่?

2
จะลบหลายบรรทัดต่อการเกิดขึ้นในไฟล์ได้อย่างไร?
สมมติว่าฉันมีไฟล์บรรทัดนี้ 857835 มีเนื้อหาดังนี้: a1 rubbish1 rubbish2 rubbish3 rubbish4 a1 rubbish5 rubbish6 rubbish7 rubbish8 และฉันต้องการที่จะลบสิ่งที่เกิดขึ้นทั้งหมดa1และบรรทัดถัดไป ( rubbish1และrubbish5ในตัวอย่างนี้) ฉันต้องทำอย่างไร? ฉันพยายามที่grep 'a1' -v -A1จะไม่เกิดประโยชน์และความสามารถของฉันไม่ดีนัก:} Google-fu ของฉันไม่สามารถช่วยฉันได้ในครั้งนี้มีคนช่วยด้วย!

1
กรองเนื้อหาคลิปบอร์ดโดยไม่ต้องใช้ไฟล์ระดับกลาง
ฉันกำลังพยายามแก้ไขข้อความที่อยู่ในคลิปบอร์ดลบบรรทัดบางบรรทัดที่มีสตริงบางส่วนแล้วรับผลลัพธ์สำหรับการจัดการเพิ่มเติม (ฉันชอบที่จะจัดการกับคลิปบอร์ดของฉันเฉพาะเมื่อต้องการเท่านั้น) ฉันกำลังคิดบางอย่างเช่นนี้: cat > swapfile ##Paste all grep -v string swapfile ## Read all rm swapfile ฉันพยายามป้องกันการสร้างไฟล์และทำทุกอย่างใน shell stdin / out เอง ฉันลองใช้ไพพ์การเปลี่ยนทิศทาง grep / sed จากอินพุต แต่ไม่มีผลต่อการพิมพ์อินพุตโดยไม่มีรูปแบบที่ไม่ต้องการ

6
ลบบรรทัดที่ไม่ได้เริ่มต้นด้วยรูปแบบจากชุดรูปแบบที่กำหนด
ฉันมีไฟล์ที่มีข้อมูลเช่นนี้: report aaaaaaaa - .. -th bbbbbbbbb -to ccccccccc .. --. คำถาม: ฉันต้องการลบบรรทัดที่ไม่ได้ขึ้นต้นด้วยสตริงต่อไปนี้: report -th -to นั่นหมายถึงผลลัพธ์ที่ต้องการจะลบจุดและแฮชกลางที่ไม่ต้องการทั้งหมดออกและจะมีลักษณะเช่นนี้: report aaaaaaaa -th bbbbbbbbb -to ccccccccc sed/ awk/ grep/ ฯลฯ วิธีการแก้ปัญหาใด ๆ ที่จะทำงาน

2
sed: จับคู่สองบรรทัด
ฉันมีไฟล์ข้อความที่มีการบันทึกแยกสองบรรทัด ฉันต้องการที่จะนำพวกเขาในบรรทัดเดียว ระเบียนมีลักษณะดังนี้: 2013-07-29 apt-get install git 2013-07-29 apt-get install rsync 2013-07-31 apt-get install nmap 2013-08-02 apt-get install cifs-utils 2013-08-05 apt-get install telnet ฉันต้องการรับสิ่งต่อไปนี้: 2013-07-29 apt-get install git 2013-07-29 apt-get install rsync 2013-07-31 apt-get install nmap 2013-08-02 apt-get install cifs-utils 2013-08-05 apt-get install telnet ฉันลองด้วยsedแต่ฉันไม่สามารถจับคู่สองบรรทัดได้ มีเคล็ดลับบางอย่างsedหรือมีเครื่องมือที่ดีกว่านี้หรือไม่

5
วิธีการแปลงจากรูปแบบวันที่หนึ่งไปเป็นรูปแบบอื่น ๆ ?
ฉันมีปัญหาหนึ่งกับรูปแบบวันที่ของฉัน ฉันต้องการเปลี่ยนจากรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่งและกลับกัน รูปแบบวันที่ของฉันคือ รูปแบบ 1 YYYY-MM-DD รูปแบบ 2 MM/DD/YYYY ฉันต้องการเปลี่ยนรูปแบบ 1 เป็นรูปแบบ 2 และจัดรูปแบบ 2 เป็นรูปแบบ 1

6
Bash - จับคู่ไฟล์แต่ละบรรทัด
คำถามนี้เป็นคำถามที่เกี่ยวข้องอย่างยิ่งที่จะนี้และนี้คำถาม ฉันมีไฟล์ที่มีหลายบรรทัดโดยที่แต่ละบรรทัดเป็นพา ธ ไปยังไฟล์ ตอนนี้ฉันต้องการจับคู่แต่ละบรรทัดกับแต่ละบรรทัดที่แตกต่างกัน (ไม่ใช่ของตัวเอง) ทั้งคู่A Bมีค่าเท่ากับB Aคู่สำหรับจุดประสงค์ของฉันดังนั้นควรสร้างชุดค่าผสมเหล่านี้เพียงชุดเดียว ตัวอย่าง files.dat อ่านแบบนี้ในรูปแบบย่อตัวอักษรแต่ละตัวเป็นเส้นทางไฟล์ (สัมบูรณ์หรือสัมพัทธ์) a b c d e จากนั้นผลลัพธ์ของฉันควรมีลักษณะเช่นนี้: a b a c a d a e b c b d b e c d c e d e โดยเฉพาะอย่างยิ่งฉันต้องการที่จะแก้ปัญหานี้ในทุบตี แตกต่างจากคำถามอื่น ๆ รายการไฟล์ของฉันค่อนข้างเล็ก (ประมาณ 200 บรรทัด) ดังนั้นการใช้ลูปและความจุ RAM จึงไม่มีปัญหา

4
กำหนดระยะเวลาที่แท็บ '\ t' อยู่บนบรรทัด
ในฟิลด์การประมวลผลข้อความมีวิธีใดที่จะทราบว่าแท็บมีความยาว 8 อักขระ (ความยาวเริ่มต้น) หรือน้อยกว่า ตัวอย่างเช่นถ้าฉันมีไฟล์ตัวอย่างที่มีตัวคั่นแท็บและเนื้อหาของฟิลด์มีขนาดพอดีกับแท็บน้อยกว่าหนึ่งแท็บ (≤7) และถ้าฉันมีแท็บหลังจากนั้นแท็บนั้นจะเป็น 'ขนาดแท็บ - ขนาดของฟิลด์เท่านั้น ยาว มีวิธีในการรับความยาวทั้งหมดของแท็บในบรรทัดหรือไม่ ฉันไม่ได้มองหาจำนวนแท็บ (เช่น 10 แท็บไม่ควรคืนค่า 10) แต่ความยาวอักขระของแท็บเหล่านั้น สำหรับข้อมูลอินพุตต่อไปนี้ (คั่นด้วยแท็บระหว่างฟิลด์และหนึ่งแท็บเท่านั้น): field0 field00 field000 last-field fld1 fld11 fld001 last-fld fd2 fld3 last-fld ฉันคาดว่าจะนับความยาวแท็บในแต่ละบรรทัดดังนั้น 11 9 9

5
ฉันจะแก้ไข n บรรทัดสุดท้ายในไฟล์ได้อย่างไร
มีคำสั่งให้ฉันแก้ไขบรรทัดสุดท้ายในไฟล์หรือไม่? ฉันมีไฟล์หลายไฟล์ซึ่งทั้งหมดมีจำนวนบรรทัดต่างกัน แต่ฉันต้องการแก้ไข n บรรทัดสุดท้ายในแต่ละไฟล์ เป้าหมายคือการแทนที่เครื่องหมายจุลภาคด้วยเครื่องหมายอัฒภาคในบรรทัดสุดท้าย n แต่จะอยู่ในบรรทัดสุดท้ายเท่านั้น ฉันไม่ต้องการลบบรรทัดใด ๆ ฉันเพียงต้องการแทนที่เครื่องหมายจุลภาคทุกอันด้วยเครื่องหมายอัฒภาคในบรรทัดสุดท้าย n ในแต่ละไฟล์ การใช้คำสั่ง sed ฉันสามารถแทนที่บรรทัดสุดท้ายด้วยคำสั่งนี้ได้ ตามที่อธิบายไว้ที่นี่: ฉันจะลบข้อความในบรรทัดสุดท้ายของไฟล์ได้อย่างไร แต่นี่ทำให้ฉันสามารถแก้ไขบรรทัดสุดท้ายเท่านั้นไม่ใช่บรรทัดสุดท้าย

3
วิธีการ grep สองบรรทัดจาก lshw?
ฉันต้องการหมายเลขซีเรียลของเมนบอร์ดและรุ่นผลิตภัณฑ์ของคอมพิวเตอร์ ฉันใช้ sudo lshw | grep -m1 serial: เพื่อ grep หมายเลขซีเรียล (เนื่องจากมีหลายเหตุการณ์ที่เกิดขึ้นของ "serial:" และสิ่งที่ฉันต้องการคือหมายเลขแรกฉันจะทำเช่นนี้และ grep พร้อมกันสำหรับ "product:" เช่นกันหรือไม่นอกจากนี้ยังมีผลิตภัณฑ์หลายรายการ และอันแรกก็คืออันที่ฉันต้องการอีกครั้ง lshw ส่งคืนสิ่งนี้: user@ubuntu:~$ sudo lshw ubuntu-pc description: Notebook product: 23252DG (LENOVO_MT_2325) vendor: LENOVO version: ThinkPad X230 serial: R9TWZVR width: 64 bits capabilities: smbios-2.7 dmi-2.7 vsyscall32 configuration: administrator_password=disabled chassis=notebook family=ThinkPad X230 power-on_password=disabled …

8
วิธีลบบรรทัดหากมีอักขระหนึ่งครั้ง
ฉันต้องการลบบรรทัดออกจากไฟล์ที่มีอักขระเฉพาะเพียงครั้งเดียวหากมีมากกว่าหนึ่งครั้งหรือไม่มีอยู่ให้เก็บบรรทัดไว้ในไฟล์ ตัวอย่างเช่น: DTHGTY FGTHDC HYTRHD HTCCYD JUTDYC ที่นี่ตัวละครที่ฉันต้องการลบนั้นเป็นCเช่นนั้นคำสั่งควรลบบรรทัดFGTHDCและJUTDYCเพราะพวกเขามีCเพียงครั้งเดียว ฉันจะทำสิ่งนี้โดยใช้อย่างใดอย่างหนึ่งsedหรือawk?

6
จะแทนที่ epoch timestamps ในไฟล์ด้วยรูปแบบอื่นได้อย่างไร?
ฉันมีไฟล์ที่มีวันที่ในยุคที่ฉันต้องการเปลี่ยนเป็นคนอ่านได้ ฉันรู้วิธีการแปลงวันที่แล้วเช่น: [server01 ~]$ date -d@1472200700 Fri 26 Aug 09:38:20 BST 2016 .. แต่ฉันพยายามหาวิธีsedผ่านไฟล์และแปลงรายการทั้งหมด รูปแบบไฟล์มีลักษณะดังนี้: #1472047795 ll /data/holding/email #1472047906 cat /etc/rsyslog.conf #1472048038 ll /data/holding/web

9
แปลงแถวเป็นคอลัมน์
ฉันมีไฟล์ที่มีรายละเอียดเกี่ยวกับ VM ที่ทำงานในไฮเปอร์ไวเซอร์ เรารันคำสั่งบางคำสั่งแล้วเปลี่ยนเส้นทางผลลัพธ์ไปยังไฟล์ และเป็นข้อมูลที่มีอยู่ในรูปแบบด้านล่าง Virtual Machine : OL6U5 ID : 0004fb00000600003da8ce6948c441bb Status : Running Memory : 65536 Uptime : 17835 Minutes Server : MyOVS1.vmorld.com Pool : HA-POOL HA Mode: false VCPU : 16 Type : Xen PVM OS : Oracle Linux 6 Virtual Machine : OL6U6 ID : 0004fb00000600003da8ce6948c441bc …

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