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

grep เป็นยูทิลิตีบรรทัดคำสั่ง Unix ที่ค้นหาอินพุตสำหรับการจับคู่บรรทัด (หรือไม่) นิพจน์ทั่วไปและพิมพ์ผลลัพธ์ ใช้แท็กนี้สำหรับคำถามเกี่ยวกับวิธีการใช้คุณสมบัติ grep วิธีการเขียนนิพจน์ทั่วไปที่ทำงานกับ grep และการใช้งานทั่วไป เนื่องจาก grep พร้อมใช้งานในสภาพแวดล้อมคล้าย Unix (เช่น Cygwin บน Windows) คุณจึงสามารถใช้แท็กนี้สำหรับคำถามที่เข้ากันได้และความแตกต่างระหว่างรุ่นและสภาพแวดล้อมของซอฟต์แวร์

1
วิธีที่ดีที่สุดในการยกเลิกการลบภาพบางส่วนบน Linux คืออะไร? มีวิธีใดที่ใช้สำคัญที่สุดในการกู้คืนไฟล์ที่มีข้อความเท่านั้นหรือไม่?
ฉันบังเอิญลบภาพดิจิตอลบางภาพที่ฉันเพิ่งถ่ายไปและฉันต้องการยกเลิกการลบภาพเหล่านั้น ฉันค้นพบเกี่ยวกับ โฟร์โมสต์และมันช่วยให้ฉันสามารถกู้คืนไฟล์ jpg ได้ แต่จะเป็นอย่างนั้นกับภาพทั้งหมดที่ฉันลบไป ฉันรู้ว่าไฟล์ทั้งหมดที่ฉันต้องการจะมีสตริง "COOLPIX L20" ในบางส่วนของไฟล์ ฉันสามารถ grep ฮาร์ดไดรฟ์และจะพบบางสิ่งบางอย่าง แต่ฉันไม่ทราบวิธีการ "แยก" ที่เป็นไฟล์ภาพ ในระยะสั้นมีวิธีใดที่สำคัญที่สุดที่จะกู้คืนไฟล์ที่มีสตริงบางส่วนหรือบางอย่างที่ดีกว่าที่จะทำมันได้หรือไม่


1
ค้นหาไฟล์ด้วยสตริง
ฉันจะย้ายไฟล์ pdf ที่มีสตริง "RELAÇÃO DOS TRABALHADORES" ไว้ข้างในได้อย่างไร? ใช้อูบุนตู 14.4 ฉันลองใช้แล้ว: grep -i -Z -r -l 'RELAÇÃO DOS TRABALHADORES' . | xargs -I{} mv {} ./destination grep -lir 'RELAÇÃO DOS TRABALHADORES' target/* | xargs mv -t destionation/ mv `grep -lir 'RELAÇÃO DOS TRABALHADORES' target` destination/ แต่ไม่มีงานนี้เลย ไม่มีข้อผิดพลาดไม่มีผลลัพธ์ไม่มีอะไรเลย ขอบคุณ
1 linux  ubuntu  pdf  grep  mv 

1
กรณีเฉพาะของ grep ที่ไม่โลภ
ฉันรู้ว่ามีตัวอย่างมากมายของ regex ที่ไม่โลภด้วย grep แต่ฉันมีปัญหากับกรณีเฉพาะของฉัน ไฟล์ของฉันมีเส้นคล้ายกับ: [X12345.Yabc.Z7989].[ALPHA/BRAVO].[CHARLIE.DELTA] และฉันพยายามที่จะแยกออกเพียง X12345 ส่วนหนึ่ง นั่นคือส่วนที่เริ่มต้นด้วย X และจนถึงช่วงแรก ( . ) ตัวอย่างที่ใกล้เคียงที่สุดของฉันคือ: grep -Eo "X(.*?)\." inputfile แต่นั่นก็โลภเกินไป (แม้ว่าฉันคิดว่าฉันใช้ .*? อย่างถูกต้อง ใครช่วยแนะนำฉันไปยัง regex ที่เหมาะสม?
1 regex  grep 

1
ฉันทำอะไรผิดกับ grep
ดังต่อไปนี้สมเหตุสมผล (แม้ว่าคุณจะไม่เห็นเนื้อหาของ debug.cpp) $ grep '^[A-Za-z_]' debug.cpp float CheckExistence(); entity Findgoal(float gno); void RPrint(const string& msg); void MakeMeDebug(entity who); void dremove(entity te) void display_location() void RPrint(const string& msg) void MakeMeDebug(entity who) ตอนนี้เมื่อฉันเพิ่ม .*ดังนี้ $ grep '^[A-Za-z_].*' debug.cpp ฉันได้รับ 8 บรรทัดว่างเปล่าเป็นผลลัพธ์ (ซึ่งฉันไม่สามารถทำให้เว็บไซต์นี้แสดงผลได้) ฉันสงสัยว่าเป็นข้อผิดพลาดอย่างยิ่งฉันได้อัปเดต grep ล่าสุด (เวอร์ชั่น 2.25) แล้วและก็ทำสิ่งเดียวกัน ฉันใช้ Ubuntu หากความเข้าใจของฉันถูกต้องนิพจน์ปกติของฉันจะพูดว่า: …
1 ubuntu  regex  grep 

1
ทำไมตัวกรอง grep นี้ไม่ทำงานตามที่คาดไว้
คำนำ: ฉันได้เพิ่ม alias airport="sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport" ถึงฉัน .zshrc. myuser:~/ $ airport prefs [17:19:30] AirPort preferences for en1: DisconnectOnLogout=NO JoinMode=Automatic Unable to retrieve JoinModeFallback RememberRecentNetworks=YES RequireAdminIBSS=NO RequireAdminNetworkChange=NO RequireAdminPowerToggle=NO WoWEnabled=YES myuser:~/ $ airport prefs | grep "JoinMode=" [17:20:36] Unable to retrieve JoinModeFallback JoinMode=Automatic ทำไมไม่ทำอย่างนี้ grep กรองออก JoinModeFallback สาย?

2
แสดงสตรีมทั้งหมดในขณะที่ไฮไลต์ด้วย grep
ฉันมักจะใช้tail -f | grep someregexกับไฟล์บันทึก ฉันพิมพ์ grep ไปแล้วgrep ---color=autoเพื่อให้การจับคู่ของฉันถูกเน้น หากฉันต้องการเห็นแมตช์ของฉันในบริบทของสตรีมทั้งหมดฉันจะทำอย่างไร โดยพื้นฐานแล้วฉันต้องการใช้ tail + grep เป็นปากกาเน้นข้อความ
1 linux  grep  tail 

1
วิธีการแยกเซกเมนต์ของไฟล์ไบนารีโดยยึดตามการเริ่มต้นและสิ้นสุดสตริงสตริง
ฉันมีไฟล์ไบนารีขนาดใหญ่ (หลายร้อย GB) และฉันต้องการแยกกลุ่มจากมัน ฉันรู้ว่าสตริงเลขฐานสิบหกของจุดเริ่มต้นและจุดสิ้นสุด
1 grep  sed  awk  hexdump 

1
วิธีทำให้ SlickEdit ของผลการค้นหามีลักษณะเหมือน Notepad ++
ฉันใช้ "find in files" (grep) และผลลัพธ์การค้นหาบ่อยมากสำหรับการนำทางโค้ด ขณะนี้ฉันใช้ทั้ง SlickEdit และ Notepad ++ ในเวลาที่ต่างกัน ทั้งสองแอปพลิเคชันทำสิ่งนี้ "ค้นหาไฟล์" แต่ Notepad ++ มีหน้าจอผลการค้นหาที่ดีกว่ามาก ผลลัพธ์จะถูกบันทึกแม้หลังจากการค้นหาใหม่จะเริ่มขึ้น ใน SlickEdit ดูเหมือนว่าการค้นหาใหม่จะล้างผลลัพธ์จากการค้นหาก่อนหน้า ฉันรู้ว่าฉันสามารถทำเครื่องหมายในหน้าต่างตัวเลือกผลการค้นหา "ใหม่" และ "เพิ่มขึ้นอัตโนมัติ" แต่ดูเหมือนว่าการเลือก "ใหม่" ไม่คงอยู่กับการค้นหาใหม่ (การค้นหาใหม่จะส่งคืนผลลัพธ์ในแท็บใดก็ตามที่คุณเปิด) และ " การเพิ่มอัตโนมัติ "ล้อมรอบแท็บของคุณ แต่จะไม่สร้างแท็บใหม่สำหรับการค้นหาใหม่ สิ่งที่ฉันต้องการจริงๆคือ "ใหม่" ที่จะเลือกอย่างถาวร มีวิธีทำเช่นนั้นหรือไม่?
1 notepad++  grep 

0
globs ทั้งหมดที่ฉันสามารถใช้กับ grep ในทุบตีคืออะไร?
เปลือก Linux และ Unix เหมือนbashอนุญาตให้ใช้ globs เพื่อชื่อไฟล์โดยประมาณและทำให้การค้นหาไฟล์ง่ายขึ้น ฉันทราบสัญลักษณ์ตัวแทน (*) มี globs อื่นใดอีกบ้างbashที่ฉันสามารถใช้กับมันได้grep?

1
เอาต์พุตของตัวเลือก 'n' สำหรับ grep บนอุปกรณ์คืออะไร?
ถ้าฉันทำสิ่งนี้: grep -a -n 'test' / dev / sdb10 มันจะค้นหาบนอุปกรณ์ sdb10 ที่ระดับไบนารีสำหรับสตริง 'ทดสอบ' ฉันสามารถเห็นผลลัพธ์ของตัวเลือก 'n' แต่มันหมายถึงอะไร อุปกรณ์ถือเป็นไฟล์เดียวหรือไม่? วัตถุประสงค์ของฉันคือระบุตำแหน่งของไฟล์บนอุปกรณ์เพื่อให้ฉันสามารถ 'dd' ส่วนหนึ่งของไดรฟ์
1 linux  grep 

0
การย้ายชื่อโดเมนจากไฟล์โดยใช้ bash
เรียนรู้การทุบตีในขณะนี้และฉันรู้ว่าเมื่อฉันทำ wget cisco.com ไฟล์ index.html จะปรากฏขึ้น ฉันรู้โดยการตัด index.html | ตัด "/" สิ่งนี้ให้ฉันด้วยเพียงแค่ cisco.com อย่างไรก็ตามจะเกิดอะไรขึ้นถ้าฉันต้องการ cat index.html และลบ cisco.com และมีส่วนที่เหลือของแต่ละ URL เช่น / test / foobar หรือ / example / foobar ฉันจะทำสิ่งนี้ได้อย่างไร ไชโย :)
bash  grep  cut 

2
apache mod rewrite - วิธีการตรวจสอบว่าไฟล์บนดิสก์ถูกโจมตี
โครงการที่ฉันกำลังทำงานอยู่เพิ่งทำมาหลายปีแล้วและมันก็สะสมได้ค่อนข้างซับซ้อนหลายร้อย RewriteRule ภายในไฟล์ Apache conf เมื่อทำงานกับไฟล์บางไฟล์ฉันสามารถทราบได้ว่ากฎใดมีผลต่อพวกเขา อย่างไรก็ตามในกรณีอื่น ๆ ฉันติดอยู่ที่การหาทางออก วิธีการของฉันจนถึงตอนนี้คือการดูไฟล์ conf ต่างๆด้วยตนเองและ grep พวกเขาสำหรับคำหลักบางอย่าง มีวิธีที่ดีกว่าในการทำเช่นนี้? บางสิ่งที่ฉันคิดได้คือ: มีคำสั่งหรือ REPL ที่ฉันสามารถป้อนพา ธ และส่งคืนชื่อของไฟล์ที่ให้บริการหรือไม่? มีเครื่องมือที่จะช่วยให้คุณทำข้างต้นและยังเน้นที่บรรทัดในไฟล์ conf เขียนใหม่กฎที่? มีวิธีการตรวจสอบล็อกไฟล์เพื่อกำหนดพา ธ อินพุตและพา ธ การให้บริการไฟล์ที่เกี่ยวข้องหรือไม่ ... แต่ฉันไม่แน่ใจว่าจะเริ่มต้นกับสิ่งเหล่านี้ได้อย่างไร

1
ที่อยู่ IP ระบุทศนิยมเป็น / 8 หรือ / 16 โดยใช้เครื่องหมาย bash, sed หรือ awk?
ฉันมีไฟล์อินพุตที่มีรายการที่อยู่ ip และ ip_counts (พารามิเตอร์บางตัวที่ฉันใช้ภายใน) ไฟล์มีลักษณะดังนี้ 202.124.127.26 2135869 202.124.127.25 2111217 202.124.127.17 2058082 202.124.127.16 2014958 202.124.127.20 1949323 202.124.127.24 1933773 202.124.127.27 1932076 202.124.127.22 1886466 202.124.127.18 1882955 202.124.127.21 1803528 202.124.127.23 1786348 119.224.129.200 1776592 119.224.129.211 1639325 202.124.127.19 1479198 119.224.129.201 1145426 202.49.175.110 1133354 119.224.129.210 1119525 68.232.45.132 1085491 119.224.129.209 1015078 131.203.3.8 857951 202.162.73.4 817197 207.123.58.125 785326 …

1
วิธีการเปลี่ยนนามสกุลไฟล์ของทุกไฟล์ในไดเรกทอรี unix / linux
ฉันมีไดเรกทอรี 5,000 ไฟล์ ไฟล์ทั้งหมดนี้ลงท้ายด้วยนามสกุล .xml ฉันต้องการเปลี่ยนแปลงสิ่งนั้นและทำให้พวกเขาทั้งหมดจบลงด้วย .txt ฉันจะทำสิ่งนี้ให้สำเร็จใน linux / mac ได้อย่างไร?

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