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

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

1
แยกส่วนของการถ่ายโอนข้อมูล SQL ที่มีขนาดใหญ่
มีวิธีการโยงคำสั่งเช่น grep และส่วนหัวเข้าด้วยกันเพื่อแยกส่วนของไฟล์หรือไม่? ปัญหาคือที่ใดที่หนึ่งในไฟล์. sql ของฉันฉันมีข้อมูลเก่าที่ฉันต้องการเปรียบเทียบกับข้อมูลใหม่และฉันไม่รู้ว่าบรรทัดใดที่ฉันต้องบอกให้ Head เริ่มต้น แต่ฉันต้องไปแค่ 10 บรรทัด ... มันเป็นโต๊ะเล็ก ฉันกำลังมองหาบางอย่างที่ทำ Find `database`.`tablename` | head next 20 lines to new file.txt
linux  grep  head 

1
วิธีการสร้างคำสั่ง grep ด้วยอาร์กิวเมนต์ตัวแปรใน bash?
ฉันพยายามทำสิ่งนี้ใน bash: grep ( date | awk '{print "2006-" $6}' ) /some/file/here แต่ไวยากรณ์ที่ไม่ถูกต้อง เป้าหมายคือการ grep / some / file / ที่นี่สำหรับรูปแบบ 2006-2011 โดย 2011 เป็นปีปัจจุบัน
bash  grep  awk  xargs 

5
นิพจน์ปกติเพื่อค้นหา IP ของผู้ส่งโดยใช้ grep หรือภาษาอื่น
ฉันมีไฟล์อินพุตที่มี: 19:04:01.631948 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [none], proto UDP (17), length 48) 181.173.82.61.1985 > 250.66.33.195.1985: HSRPv0-hello 20: state=active group=72 addr=171.64.72.1 hellotime=2s holdtime=7s priority=120 auth="vlan72^@^@" 19:04:02.061482 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [none], proto UDP (17), length 48) 181.173.82.60.1985 > 250.66.33.195.1985: …
linux  shell  regex  grep  awk 

2
รหัสของฉัน. sh ไม่สามารถทำงานได้ ช่วยฉันด้วย
#!/usr/bin/expect -f set port [lindex $argv 0] spawn ps xu | grep "ssh -f -N -o ConnectTimeout=5 -D $port" | grep -v grep | awk '{ print $2 }' | xargs kill -9 expect eol ฉันแน่ใจว่าพอร์ต 10034 1234 ทำงานอยู่ เพราะฉันตรวจสอบมัน ps aux | grep ssh และดู ดังนั้นในรหัสของฉันคืออะไร ขอบคุณ
linux  bash  ssh  grep 

1
grep และค้นหาและแทนที่ใน linux ยอมรับพารามิเตอร์ด้วย /
ฉันพยายามค้นหาและแทนที่เนื้อหาของไฟล์โดยใช้ grep และ sed grep "#!/bin/bash" ./ | sed xargs -i 's/#!/bin/bash/#!/usr/bin/env bash' ฉันจะทำให้แน่ใจว่าสตริง#!/bin/bashจะแยกเป็นสตริงและไม่สับสน demiliter /?

1
จะค้นหาไฟล์ที่มีสตริงในเนื้อหาหรือเส้นทางได้อย่างไร?
Find และ grep ใช้งานไม่ได้เพราะฉันต้องการสร้างรายการไฟล์ที่ตรงตามความต้องการของ EITHER ไม่ใช่ทั้งสองอย่าง ฉันคิดว่าสิ่งนี้ต้องการมากกว่าหนึ่งซับ ข้อเสนอแนะใด ๆ

1
ใช้ pdfcrack เพื่อรวมอักขระพิเศษในชุดอักขระ
ฉันพยายามกู้คืนรหัสผ่านจากไฟล์ PDF โดยใช้ pdfcrack ฉันต้องการเปลี่ยนชุดอักขระเพื่อรวมอักขระพิเศษ ฉันสามารถใช้การเปลี่ยนเส้นทางแบบ i / o เพื่อป้อนเนื้อหาของไฟล์ที่คล้ายกันได้ดังนี้: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890! @ # $% ^ & * ( '' / \ || "" เป็นพารามิเตอร์ชุดอักขระหรือไม่ แทนที่จะพยายามที่จะหลบหนีตัวละครพิเศษทั้งหมดอย่างถูกต้องให้เป็นคำสั่งอันยิ่งใหญ่?
grep  pipe  charset 

1
ฉันจะเพิ่ม bash one-liner ของฉันให้เป็นค่าเริ่มต้นได้อย่างไร
ฉันมีในสคริปต์ที่ครอบคลุมหนึ่งซับนี้: grep -P -o "(?s)description\".+>" ./Hlinks.html \ | grep -P -o "(?s)ISBN[^:]{0,1}: {0,1}[-0-9X]+[ \|]*" \ | perl -p -e "s/ISBN[^:]*:*|[\|| ]//g" | sed -n "/.*/p;1q" > ./nISBN.txt ตอนนี้ฉันต้องการรับเอาท์พุทเริ่มต้น (fe "NA") เมื่อหนึ่งซับออกไม่มีอะไร ฉันจะทำให้หนึ่งซับของฉันสมบูรณ์ขึ้นเพื่อรับความปรารถนานี้ได้อย่างไร ขอบคุณมาก วอลเตอร์

3
สร้างรายการไฟล์ตามรูปแบบเวลาในชื่อไฟล์
ฉันมีอุปกรณ์บันทึกภาพของกล้องที่จะสร้างโฟลเดอร์ที่มีโครงสร้างพร้อมวิดีโอเช่นตัวอย่างด้านล่าง ฉันต้องการสร้างรายการไฟล์วิดีโอ แต่จะสร้างเฉพาะช่วงเวลาที่กำหนด เช่นระหว่าง 8:00 - 17:00 น. (วิดีโอที่อยู่นอกช่วงนี้มีคุณภาพไม่ดีเนื่องจากแสงน้อย) ชื่อไฟล์มีโครงสร้างดังนี้: [DATE Folder] AM | PM / sricam- [date] - [time] -sequence # .mp4 ด้วยตัวอย่างต่อไปนี้ตัวกรองจะแสดงเฉพาะไฟล์ที่เริ่มต้นที่ 8h08: 15 /data/20171229AM/sricam-20171229-070814-1514520494.mp4 /data/20171229AM/sricam-20171229-073814-1514522294.mp4 /data/20171229AM/sricam-20171229-080815-1514524095.mp4 /data/20171229PM/sricam-20171229-180815-1513553225.mp4 ฉันพบว่ารูปแบบการขยายรั้งสามารถกรองตัวเลข แต่วิธีการทำมันในโฟลเดอร์ย่อยทั้งหมด ฉันหวังว่าคำอธิบายของฉันจะไม่สับสนเกินไป :) ขอขอบคุณ
linux  bash  regex  grep 

2
วิธีการ grep หรือค้นหาสิ่งที่ฉันกำลังมองหา?
ฉันจะค้นหาคำที่เรียกว่า "Onderh" ได้อย่างไร การค้นหาขั้นสูงฉันต้องการทำเช่น: เริ่มต้นบรรทัดด้วย "Onderh" หรือบรรทัดประกอบด้วย "Onderh" หมายเหตุ: ไดเรกทอรีข้อมูลสำรองในพื้นที่มี MySQL snapshot "database.sql (ขนาดไฟล์: 81902272) ทุกวัน" ข้างในไฟล์นั้นฉันต้องใช้การค้นหา [me@www win]$ ls 2011-03-01 2011-03-04 2011-03-07 2011-03-10 2011-03-13 2011-03-16 2011-03-19 2011-03-22 2011-03-25 2011-03-28 2011-03-31 2011-04-03 2011-04-06 2011-03-02 2011-03-05 2011-03-08 2011-03-11 2011-03-14 2011-03-17 2011-03-20 2011-03-23 2011-03-26 2011-03-29 2011-04-01 2011-04-04 2011-04-07 2011-03-03 2011-03-06 2011-03-09 2011-03-12 …
centos  find  grep 


2
Grep: แสดงเฉพาะบรรทัดที่ 2 ด้านบน
สมมติว่าฉันมีไฟล์ข้อความพร้อมเนื้อหา: foo bar whatever something I don't know bar2 whatever และเป็นผลลัพธ์จากการทำgrep whatever myfile.txt(และ / หรือsedและ / หรือawk) ฉันต้องการ: foo something I don't know ฉันได้พยายามใช้ตัวเลือก-B 2แต่ที่ผลทั้งสองและfoo ไม่สามารถทำได้เนื่องจากมีหลายระเบียนที่แตกต่างกันbar... | grep -v bar
linux  bash  script  grep 

1
BASH: grep นับคำเดียวกันที่เกิดขึ้น
เป็นไปได้หรือไม่ที่จะนับจำนวนครั้งสูงสุดของคำในสตริงโดยใช้ grep เท่านั้น นี่คือตัวอย่างของสิ่งที่ฉันต้องการ: script.sh "aaaa bbbb ccc bbbb azesd bbbb" จะกลับมา bbbb 3 ขอขอบคุณ แก้ไข: ฉันพบวิธีแก้ปัญหา ขอบคุณ
bash  regex  grep 

1
ฉันจะไพพ์คำสั่งเพื่อ grep เพื่อค้นหาสตริงที่แน่นอนได้อย่างไรเมื่อบางส่วนของสตริงนั้นไม่เป็นที่รู้จัก
โปรแกรมที่ฉันทำงานใช้grepเพื่อค้นหาบันทึกของระบบสำหรับการแจ้งเตือนโดยเฉพาะอย่างไรก็ตามองค์ประกอบของรายการ syslog ที่ฉันกำลังค้นหาจะเกี่ยวข้องกับรายการนั้นโดยเฉพาะดังนั้นจึงเป็น "สุ่ม" อย่างมีประสิทธิภาพ ตัวอย่างของสิ่งที่ฉันคิดว่าฉันกำลังมองหาคือ: tail -f log | grep "string {ignore} string" ขอบคุณล่วงหน้า.

1
grep + จับคู่ปริมาณและตัวเลข
ด้วยคำสั่งต่อไปนี้ฉันสามารถตรวจสอบ / จับคู่หาก param มีตัวเลขหรือ "." param=2.3.1 echo $param | grep [0-9][.] แต่สิ่งที่ฉันต้องเพิ่มในไวยากรณ์ของฉันเพื่อตรวจสอบว่าฉันมีอย่างน้อยสองตัวเลข (ตัวเลขหรือมากกว่าทางด้านขวาและหมายเลขหรือมากกว่าทางด้านซ้าย) ตัวอย่างของตัวเลขที่ถูกต้อง 12.2 1.2 4.3.0 123.4.223 12.33.22.4.2 1.0.2.3.4 ตัวอย่างของตัวเลขที่ไม่ถูกต้อง .39274 1233. .7. .5666666. 2...

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