Trueสำหรับ awk เป็นทั้งสตริงที่ไม่ว่างเปล่าหรือตัวเลขที่ไม่ใช่ศูนย์ (ด้วยตัวเลขที่เป็นเลขจำนวนเต็มฐานสิบหรือทศนิยมและมีการใช้งาน awk บางส่วนเป็นเลขฐานสิบหกหรือฐานแปดได้เช่นกัน) สิ่งที่อยู่ในเครื่องหมายคำพูดคู่คือสตริงตัวเลขตัวอักษรที่ไม่ได้ยกมาเป็นตัวเลข แต่สำหรับสิ่งอื่นมีกฎที่ซับซ้อนในการพิจารณาว่ามีบางสิ่งที่จะถือว่าเป็นสตริงหรือตัวเลข ลิขสิทธิ์ GNU awk
คู่มือมีทั้งบทที่
จริง:
awk '1'
(หมายเลขที่ไม่ใช่ศูนย์)
awk '1e8'
(หมายเลขที่ไม่ใช่ศูนย์)
awk '-0.01'
(หมายเลขที่ไม่ใช่ศูนย์)
awk '"foo"'
(สตริงที่ไม่ว่างเปล่า)
awk '"0"'
(สตริงที่ไม่ว่างเปล่า)
awk '0 ""'
(การต่อข้อมูลทำให้สตริงที่นี่ไม่ว่าง)
echo 0 | awk '$1 ""'
(เหมือนกันกับฟิลด์ $ n)
awk 'substr("000", 1, 1)'
(ผลลัพธ์ของsubstr()
เป็นสตริงเสมอ)
echo '0foo' | awk '$0'
($ 0 เป็นสตริงที่ไม่ใช่ตัวเลขดังนั้นถือเป็นสตริง (ไม่ว่าง))
เท็จ:
awk '0'
(0 หมายเลข)
awk '""'
(สตริงว่าง)
echo 0000e123 | awk '$1'
($ 1 ถือว่าเป็นตัวเลขหากเป็นสตริงตัวเลขซึ่งอยู่ที่นี่และเป็น 0)
echo ' 0 ' | awk '$0'
(ช่องว่างนำหน้าและต่อท้ายจะถูกละเว้นเพื่อพิจารณาว่าสตริงเป็นตัวเลขหรือไม่)
awk '" 2foo" - 2'
(สตริงที่เกี่ยวข้องในนิพจน์เลขคณิตจะถูกแปลงเป็นตัวเลขโดยไม่สนใจตัวเลข)
awk 'unset_or_empty_variable'
(สตริงว่าง)
awk '"non-numerical-string" + 0'
YMMV:
awk '1e-500'
(บางคนจะบ่นบางคนจะถือว่าเป็น 0)
awk '"0x1" + 0'
(ไม่ทั้งหมดการใช้งาน awk สนับสนุน hexadecimals ในผู้ที่"0x1"
จะถูกแปลงเป็น1
ในคนอื่น ๆ ไป0
. รุ่นที่บางส่วนของสเป POSIX การใช้งานที่จำเป็นโดยไม่ได้ตั้งใจที่จะสนับสนุนจำนวนฐานสิบหกว่ามีและมันก็ถูกยกเลิกในภายหลัง. ยังgawk
ไม่รับรู้จำนวนฐานสิบหกที่ว่าเมื่อPOSIXLY_CORRECT
อยู่ใน สิ่งแวดล้อม)
awk '010 - 8'
(เหมือนกัน (ไม่มากเหมือนกับที่ 010 เป็นตัวอักษรตรงข้ามกับการแปลงจากสตริง) สำหรับ octals
awk '0x1 - 1'
(ในawk
การใช้งานที่ไม่รองรับเลขฐานสิบหก0x1
คือการต่อข้อมูล0
และx1
ตัวแปรที่ให้ผลการ"0"
แปลงเป็นตัวเลข (0) หากคุณลบ1
คุณจะได้รับ-1
ซึ่งไม่ใช่จำนวนศูนย์)
หมายความว่าถ้าคุณต้องการตรวจสอบว่าสตริงไม่ว่างคุณไม่ควรทำ:
awk '$ 1 {พิมพ์ $ 1, "ไม่ว่างเปล่า"}'
แต่
awk '$1 != "" {print $1, "is not empty"}'
มิฉะนั้นจะไม่พูด0
หรือ-0000E+00001234
ไม่ว่างเปล่า
any_integer
ฉันคิดว่าคุณหมายถึงตัวเลขตามตัวอักษรเช่น7, 89
ฯลฯ หากเป็นเช่นนั้นเหตุผลก็คือจำนวนใด ๆ ที่ไม่ใช่เงื่อนไข0
หมายถึงtrue