Score:1

คำสั่ง awk ที่มีคำเป็นตัวคั่น

ธง de

ฉันจะใช้ awk เพื่อตัดตามคำที่เก็บทุกอย่างไว้ข้างหลังได้อย่างไร : ตัวอย่าง:

ไฟล์. txt > 
XXXXWORDNNNNNN
XXXWORDNNNNNNNN
XXWORDNNNNNNNN
XWORDNNNNNNNN
WORDNNNNNNNNNN

เอาต์พุตที่ต้องการ:

ไฟล์. txt >
นนนนนน
NNNNNNN
นนนนนนนน
NNNNNNNNN
นนนนนนนนนนน
Score:2
ธง cn
ไฟล์แมว.txt | awk -F"WORD" '{ พิมพ์ $2 }'

พารามิเตอร์ -F มักจะค้นหาอักขระเดี่ยวเป็นตัวคั่น แต่เนื่องจากคุณต้องการใช้สตริงของตัวอักษรเป็นตัวคั่น จึงต้องใส่เครื่องหมายคำพูดคู่

$2 หมายถึงข้อความทั้งหมดที่ตามหลัง "WORD" ... เว้นแต่ "WORD" จะเกิดขึ้นซ้ำในบรรทัดข้อความ หากเป็นเช่นนั้น คุณจะเห็นเฉพาะข้อความระหว่าง "WORD" ที่เกิดขึ้นครั้งแรกและครั้งที่สองเท่านั้น

ฉันหวังว่านี่จะช่วยได้.

hr flag
+1 แม้ว่าจะไม่จำเป็นต้องใส่เครื่องหมายคำพูดเพียงเพราะตัวคั่นมีหลายอักขระ แต่จำเป็นก็ต่อเมื่อมีอักขระพิเศษสำหรับเชลล์ (ซึ่ง `WORD` ไม่มี) ความแตกต่างที่สำคัญกว่านั้นคือค่า FS หลายอักขระถูกตีความเป็น *นิพจน์ปกติ* (แม้ว่า `WORD` จะไม่มีอักขระพิเศษ regex ก็ตาม) นอกจากนี้ คุณมี [uuoc](https://en.wikipedia.org/wiki/Cat_%28Unix%29#Useless_use_of_cat) ดังนั้นจึงทำให้ง่ายขึ้นเป็น `awk -F WORD '{print $2}' File.txt`
mondotofu avatar
cn flag
ขอบคุณ @steeldriver ฉันไม่รู้ว่ามีคำศัพท์สำหรับ uuoc บางครั้งฉันใช้ cat เมื่อฉันลองแนวคิดเพื่อประโยชน์ในการอ่านหรือส่ง stdout ผ่านลำดับของท่อ ฉันสามารถใช้ *

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา