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

สำหรับคำถามเกี่ยวกับ grep เครื่องมือบรรทัดคำสั่งสำหรับค้นหารูปแบบข้อความในไฟล์ ใช้แท็กนี้สำหรับคำถามเกี่ยวกับ grep หรือคำถามเกี่ยวกับปัญหาที่เกิดขึ้นจากการใช้เครื่องมือบรรทัดคำสั่ง grep

1
พยายามเขียนเชลล์สคริปที่ทดสอบเซิร์ฟเวอร์จากระยะไกล แต่มันยังคงอยู่ในคำสั่งอื่นเมื่อฉันออกจากระบบ
ลองที่นี่เพื่อเขียนเชลล์สคริปต์ที่คอยทดสอบเซิร์ฟเวอร์ของฉันและส่งอีเมลถึงฉันเมื่อมันหยุดทำงาน ปัญหาคือว่าเมื่อฉันออกจากระบบจากการเชื่อมต่อ ssh แม้จะใช้มัน&ในตอนท้ายของคำสั่งเช่น./stest01.sh &มันจะตกอยู่ในที่อื่นโดยอัตโนมัติและทำให้ฉันส่งจดหมายต่อเนื่องจนกว่าฉันจะเข้าสู่ระบบอีกครั้งและฆ่ามัน #!/bin/bash while true; do date > sdown.txt ; cp /dev/null pingop.txt ; ping -i 1 -c 1 -W 1 myserver.net > pingop.txt & sleep 1 ; if grep "64 bytes" pingop.txt ; then : else mutt -s "Server Down!" myemail@address.com < sdown.txt ; sleep 10 …

8
วิธี grep แถวที่มีค่าบางอย่างในคอลัมน์ที่เฉพาะเจาะจง
ฉันมีไฟล์ดังต่อไปนี้ 200.000 1.353 0.086 200.250 1.417 0.000 200.500 1.359 0.091 200.750 1.423 0.000 201.000 1.365 0.093 201.250 1.427 0.000 201.500 1.373 0.093 201.750 1.432 0.000 202.000 1.383 0.091 202.250 1.435 0.000 202.500 1.392 0.087 202.750 1.436 0.000 203.000 1.402 0.081 203.250 1.437 0.001 203.500 1.412 0.073 204.000 1.423 0.065 204.500 …
9 awk  grep 

2
หากต้องการหาบรรทัดที่ถูกต้องลองเปลี่ยนเนื้อหาแล้วใส่กลับเข้าไปในไฟล์ต้นฉบับหรือไม่
ฉันพยายามที่จะเปลี่ยนคำเดียวในบรรทัดที่ระบุในไฟล์ แต่ฉันมีปัญหาในการเชื่อมต่อทั้งหมดเข้าด้วยกัน โดยพื้นฐานแล้วในหนึ่งบรรทัดในไฟล์ของฉันมีคำสำคัญ 'firmware_revision' และในบรรทัดนี้ (และเฉพาะบรรทัดนี้) ฉันต้องการแทนที่คำว่า 'ทดสอบ' ด้วยคำว่า 'การผลิต' ดังนั้นฉันสามารถทำสิ่งนี้: grep 'firmware_revision' myfile.py | sed 's/test/production' นี่จะเป็นการเลือกบรรทัดที่ฉันต้องการและทำการทดแทน แต่ฉันไม่สามารถหาวิธีนำบรรทัดใหม่นี้ไปยังไฟล์ต้นฉบับเพื่อแทนที่บรรทัดเก่าได้ เห็นได้ชัดว่าฉันไม่สามารถเปลี่ยนเส้นทางกลับไปที่ไฟล์ดังนั้นฉันควรทำอย่างไร แม้ว่าฉันใช้ temporaries โดยใช้grepเพื่อรับสายฉันต้องฉันสูญเสียข้อมูลอื่น ๆ ในไฟล์ดังนั้นฉันไม่สามารถเพียงแค่เปลี่ยนมันทั้งหมดไปยังไฟล์ temp แล้วแทนที่เดิมด้วย temp แก้ไข - มีคนถามข้อมูลเพิ่มเติม ให้บอกว่าฉันมีไฟล์เต็มบรรทัดเช่นนี้ [ ('key_name1', str, 'value1', 'Description'), ('key_name2', str, 'value2', 'Description'), ('key_name3', str, 'value3', 'Description'), ('firmware_revision', str, 'my-firmware-name-test', 'Firmware revision …


5
ค้นหาการเกิดขึ้นครั้งสุดท้ายของสตริงในหลายไฟล์
ฉันต้องการค้นหาไฟล์บันทึกหลายไฟล์ (ไฟล์ทั้งหมดที่สร้างใน 24 ชั่วโมงที่ผ่านมาทั้งหมดเก็บไว้ในไดเรกทอรีเดียวกัน) เพื่อค้นหาสตริงที่เกิดขึ้นครั้งล่าสุด นี่คือคำสั่งที่ฉันเขียน: find . -mtime 1 | grep fileprefix | xargs grep 'search string' | tail -1 แต่นี่จะส่งคืนบรรทัดสุดท้ายสำหรับไฟล์เดียวเท่านั้น ข้อเสนอแนะเกี่ยวกับวิธีการปรับแต่งนี้เพื่อให้ได้ทุกบรรทัด?

3
เหตุใดคำสั่งนี้จึงไม่ทำงาน:“ ps aux | grep xscreensaver”
ฉันไม่เห็นเพลงฮิตใด ๆ เกี่ยวกับสิ่งนี้ใน google ดังนั้นฉันจึงขอให้คุณ: ฉันพยายามเรียกใช้คำสั่งนี้ในเซสชัน ssh, Local คือ Debian Wheezy KDE, remote คือ Fedora 21 Gnome: ps aux | grep xscreensaver และนี่คือผลลัพธ์: bash: grep: command not found... ฉันไม่เคยเห็นสิ่งนี้มาก่อนสาเหตุคืออะไร ฉันเพิ่งจะอัปเดตระบบไม่กี่ชั่วโมงก่อนหน้านี้ แต่ไม่เห็นแพ็คเกจที่ทำเครื่องหมายไว้เพื่อนำออก มีผู้ใช้สองคนในระบบและฉันเท่านั้นที่ติดตั้งหรือลบซอฟต์แวร์ในนั้น แก้ไข # 1 นี่คือคำสั่งและผลลัพธ์ที่คัดลอกสังเกตว่าช่องว่างไม่มีในครั้งที่สอง: [root@Hostname ~]# ps aux | grep xscreensaver bash: : command not found... [root@Hostname ~]# …

4
การจับคู่สตริงที่มีจำนวนอักขระคงที่โดยใช้ grep
ฉันพยายามค้นหา6คำศัพท์ที่ใช้grepทั้งหมด ฉันมีสิ่งนี้: grep "^.\{6\}$" myfile.txt étuisแต่ฉันพบว่านอกจากนี้ผมยังได้รับผลเช่น étude, ฉันสงสัยว่ามันมีบางอย่างเกี่ยวกับสัญลักษณ์ด้านบนeในคำด้านบน มีสิ่งที่ฉันสามารถทำได้เพื่อให้แน่ใจว่าสิ่งนี้จะไม่เกิดขึ้น? ขอบคุณสำหรับความช่วยเหลือของคุณ!

5
ค้นหาสตริงที่แน่นอนด้วย grep
โดยวิธีการเช่นฉันเป็นไฟล์ข้อความขนาดใหญ่ที่มีที่อยู่อีเมลจำนวนมากโดยใช้ทุบตีฉันต้องการค้นหา / ตรวจสอบว่ามีอีเมลอยู่ (หรือไม่) ควรจะใช้ "เบรก" เท่านั้นหรือไม่ grep '^user1@example.com' text_file หรือว่ามีวิธีที่ดีกว่า ฉันต้องการสร้างสคริปต์ทุบตีและฉันต้องการความปลอดภัย
9 grep 

1
grep --color เพิ่มรหัส ANSI ESC [K - สิ่งนี้สามารถเปลี่ยนข้อความที่แสดง
ทำไม grep จึงเพิ่มรหัส ANSI \e[Kลงในเอาท์พุตสี ฉันไม่เห็นจุดของมัน แต่เห็นได้ชัดว่านักพัฒนาสามารถ มันเป็นรหัสมาตรฐาน ANSI / VT100 ร์มินัลที่ใช้ในการ"ล้างเส้นจากตำแหน่งเคอร์เซอร์ปัจจุบันที่จะสิ้นสุดของเส้น" ในกรณีที่มีขอบ grep สามารถทำให้ข้อความ "หายไป" จากจอแสดงผลขั้ว ตัวอย่างเช่น: echo -e "ab\rc" echo -e "ab\rc" |grep --color=always "c" echoง่ายแสดง: cbแต่หน้าจอcolorizedแสดง:c ข้อความที่เข้ารหัสที่สำคัญคือ: echo -e 'ab\r\033[01;31m\033[Kc\033[m\033[K' อย่างไรก็ตามหากไม่มี\e[Kรหัสจะ echo -e 'ab\r\033[01;31mc\033[m'ทำงานได้ตามที่คาดไว้! อะไรคือสาเหตุของการรวม\e[Kรหัสเหล่านี้ของ grep ฉันเขียนสคริปต์เพื่ออนุญาตให้มีการซ้อนทับของสองผ่านการระบายสีc=--color=always; ls $c /bin/gzip | grep $c 'z'เช่น: ดังนั้นผมจึงจำเป็นต้องเข้าใจ\e[Kความหมายว่าทำไม grep
9 terminal  grep  colors 

1
grep สำหรับคำไม่เกินความยาวที่แน่นอน
ฉันกำลังมองหาวิธีที่จะ grep สิ่งต่าง ๆ เช่น: i log for E M, i 1 f x i 0, I xi 1, 3 1,.เพียงแค่ขึ้นอยู่กับจำนวนของตัวละคร ไม่มีสิ่งใดในเอาต์พุตสมมุติฐานที่มีความยาวเกินสามอักขระ หนึ่งซับสมมุติฐานนี้จะมีลักษณะเหมือน, grep -v [:alnum:] > {3}. (ยกเว้นว่าฉันไม่รู้วิธีเขียนในไวยากรณ์ grep)

2
grep ตัวละครโดยรอบของการแข่งขัน
ฉันต้องการค้นหาและแทนที่ภายในฐานข้อมูลขนาดใหญ่และมันไม่ได้ทำในสิ่งที่ฉันคิดว่าควรจะเกิดขึ้น ฉันต้องการ grep สำหรับสตริงเป้าหมายของฉันในไฟล์แล้วดูอักขระ 8 ตัวหรือมากกว่านั้น (ฉันอาจต้องปรับตัวเลขนั้นขึ้นอยู่กับ) ฉันจะทำสิ่งนั้นได้อย่างไร เหตุผลที่ฉันไม่สามารถดูลูกตานี้ได้เพราะมีหลายร้อยถ้าไม่ตรงกัน ฉันต้องการได้รับจำนวนอักขระรอบ ๆ สตริงและจากนั้นสอดเข้าไปuniqหรือเพื่อดูว่าทำไมการค้นหาและแทนที่ของฉันจึงมีพฤติกรรมที่ไม่คาดคิด นอกจากนี้ยังสามารถมีการแข่งขันหลายรายการในบรรทัดเดียวกัน!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.