簡體   English   中英

如何逃避AWK printf中的百分號?

[英]How to escape a percent sign in AWK printf?

我正在制作一個awk語句,允許我在屏幕上打印一些unicode nop(在測試中,其中18個)。 目前看起來如下:

awk 'BEGIN {while (c++<18) printf "%u9090"}'

執行此操作時,將返回運行時錯誤:

awk:運行時錯誤:沒有足夠的參數傳遞給printf(“%u9090”)

我意識到我必須逃避我的%字符,因為我沒有將任何變量傳遞給awk,並且它期待它們。 我修改了以下內容:

awk 'BEGIN {while (c++<18) printf "\%u9090"}'

但是我仍然被提出同樣的錯誤? gnu文檔表明我應該使用\\來逃避\\所以我對其他什么嘗試都有點不對勁。

我知道的所有printfs (根據C標准在C中)允許您使用%%指定文字百分比。

您引用的GNU文檔告訴您如何轉義字符串文字中的特殊字符。 但是,printf的第一個arg被解釋為格式字符串,因此字符串文字轉義機制是錯誤的查找位置。 查找的正確位置是printf規范(對於awk,或者如果所有其他都失敗,則為C語言)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM