Score:2

ใช้ตัวแปรใน awk

ธง cx

สวัสดี ฉันต้องการนับจำนวนคำที่มีความยาวเฉพาะ ฉันใช้คำสั่งนี้

awk 'ความยาว == 2' mydict.txt | สุขา -l

รหัสนี้ให้สิ่งที่ฉันต้องการ แต่ถ้าลองใส่ตัวแปรแทนหมายเลข 2 มันจะไม่ทำงาน รหัสเป็นแบบนี้ครับ

awk 'ความยาว == $var' mydict.txt | สุขา -l

และเทอร์มินัลพิมพ์ 0 ฉันจะทำอย่างไร

αғsнιη avatar
cn flag
ไม่ใช่ว่าคำสั่งที่คุณให้มา มันไม่ทำตามที่คุณพูดว่า "_`นับจำนวนคำที่มีความยาวเฉพาะ`_" แต่จะนับจำนวนบรรทัดที่มีความยาว 2 ***ตัวอักษร*** ไม่ใช่ _words_
Score:5
ธง in

ตัวแปรจะไม่ถูกขยายด้วยเครื่องหมายคำพูดเดี่ยว (').

โดยปกติ คุณสามารถใช้เครื่องหมายอัญประกาศคู่ ("), แต่สำหรับ อึดอัดนี่ไม่ใช่วิธีแก้ปัญหาที่ดีเพราะจะนำไปสู่ปัญหาที่ซับซ้อนขึ้นเล็กน้อย อึดอัด รหัส.

ดีกว่ากำหนด an อึดอัด แปรผันด้วย -v:

awk -v var="$var" 'ความยาว == var' mydict.txt | สุขา -l

อย่างไรก็ตามไม่จำเป็นต้องมี สุขา -l, อึดอัด สามารถทำสิ่งนี้ให้คุณได้:

awk -v var="$var" 'ความยาว == var{n++} END{print n}' mydict.txt

คุณสามารถใช้ grep -c:

grep -c "^.\{$var\}\$" mydict.txt
kekekeke avatar
cx flag
ขอบคุณมากสำหรับคำตอบมันช่วยได้มาก

โพสต์คำตอบ

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