awk中printf如何输出%
我有一个很大的文本,其中有一个域是我想要的内容,但是该域内的部分文本含有%,用printf输出时会有错误提示“awk:cmd.line:6:(FILENAME=-FNR=...
我有一个很大的文本,其中有一个域是我想要的内容,但是该域内的部分文本含有%,用printf输出时会有错误提示“awk: cmd. line:6: (FILENAME=- FNR=2) fatal: not enough arguments to satisfy format string...^ ran out for this one”。我该怎么办才能正常输出这些带有%的文本呢?
举例:
文本1:7.11 iphone to%2FmjWjG7Z8Z%2B8PGfZz7TmuFR0mBWiiUEg%3D NULL
文本2:android IZWzM%2FKZxGcaaY C9hhaGtS6NAafdjDIr8KySNgg6O NULL
文本3:0.99 1212 iphone 你好,请问你叫什么名,哪%d里字/t人,姓什么叫什么啊 NULL
文本4:android 你好,%f请问 你叫什么名,哪%d里字/t人,姓什么叫什么啊 NULL
我想取 iphone/android 后面域 和“NULL” 之间的文本内容,判断含有 iphone/android 的域,并设置变量i,命名该域为 $i,当我想输出 $(i+1) 的时候,遇到有%的就不能正常输出。
因为文本中间有域分隔符,所以不能用print,用了print就换行了,只用printf的情况下该怎么操作? 展开
举例:
文本1:7.11 iphone to%2FmjWjG7Z8Z%2B8PGfZz7TmuFR0mBWiiUEg%3D NULL
文本2:android IZWzM%2FKZxGcaaY C9hhaGtS6NAafdjDIr8KySNgg6O NULL
文本3:0.99 1212 iphone 你好,请问你叫什么名,哪%d里字/t人,姓什么叫什么啊 NULL
文本4:android 你好,%f请问 你叫什么名,哪%d里字/t人,姓什么叫什么啊 NULL
我想取 iphone/android 后面域 和“NULL” 之间的文本内容,判断含有 iphone/android 的域,并设置变量i,命名该域为 $i,当我想输出 $(i+1) 的时候,遇到有%的就不能正常输出。
因为文本中间有域分隔符,所以不能用print,用了print就换行了,只用printf的情况下该怎么操作? 展开
推荐于2018-05-13
展开全部
printf("a=%d%%\n",a);
%s是表示格式化,\n表示换行,这两个都是有特定意义的;
result里不会包含进去,而result里含有的所有字符串都会照常打印出来;
%s和\n都是printf第一个参数的语法,printf按照这个参数解释你后面的变量。
但是对于%s,变量只要是字符串指针或数组就可以了,内容会被原样打印出来,不会被格式化语法影响。
%s是表示格式化,\n表示换行,这两个都是有特定意义的;
result里不会包含进去,而result里含有的所有字符串都会照常打印出来;
%s和\n都是printf第一个参数的语法,printf按照这个参数解释你后面的变量。
但是对于%s,变量只要是字符串指针或数组就可以了,内容会被原样打印出来,不会被格式化语法影响。
展开全部
遇到有%不能正常输出,不应该有这种情况。你看下面这个例子:
$ echo "哪%d里字/t人" | awk '{printf("%s\n",$0)}'
哪%d里字/t人
所以,像下面这样就可以:
awk '{for(i=1;i<=NF;i++)if($i=="android" || $i=="iphone"){printf("%s\n",$(i+1));break}}' file.txt
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
遇到有%不能正常输出,不应该有这种情况。你看下面这个例子:
$ echo "哪%d里字/t人" | awk '{printf("%s\n",$0)}'
哪%d里字/t人
所以,像下面这样就可以:
awk '{for(i=1;i<=NF;i++)if($i=="android" || $i=="iphone"){printf("%s\n",$(i+1));break}}' file.txt
$ echo "哪%d里字/t人" | awk '{printf("%s\n",$0)}'
哪%d里字/t人
所以,像下面这样就可以:
awk '{for(i=1;i<=NF;i++)if($i=="android" || $i=="iphone"){printf("%s\n",$(i+1));break}}' file.txt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询