[英]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.