免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1744 | 回复: 3
打印 上一主题 下一主题

[文本处理] ascii 97 a 字符 [复制链接]

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2019-01-22 08:37 |只看该作者 |倒序浏览
本帖最后由 1cpuer 于 2019-01-22 09:43 编辑

https://blog.csdn.net/c20130911/article/details/73187757

还看了这
http://blog.sina.com.cn/s/blog_87bbe37e01012kkp.html

脚本:
#.: cat foo.awk
#!/bin/awk -f
BEGIN {
    for (ii = 0; ii < 256; ++ii) {
        ch = sprintf("%c ", ii);
        ascii[ch] = ii;
    }
    for (ii = 1; ii < ARGC; ii++) {
        print "ord(" ARGV[ii] ") = " ascii[ARGV[ii]];
    }
}



#.: awk -f foo.awk a b c 1 2 3
ord(a) = 97
ord(b) = 98
ord(c) = 99
ord(1) = 49
ord(2) = 50
ord(3) = 51

#.: awk 'BEGIN { for (ii = 0; ii < 256; ++ii) { ch = sprintf("%c", ii); ascii[ch] = ii; } for (ii = 1; ii < ARGC; ii++) { printf "ord(" ARGV[ii] ") = " ascii[ARGV[ii]]; }}' 1 2
ord(1) = 49ord(2) = 50

如上是不支持 echo "1 2 a bc" 等,awk 自带变量 ARGC[] 指作用文件
为了调试方便转了整行

使用 sed

sed 's/[ \t]/ /g;:1;N;s/\n//;t1' foo.awk #------有问题的,指点一下
搞了一个
#.: sed ':1;N;s/\x0a\|\x20\x20*/ /g;t1' foo.awk
#!/bin/awk -f BEGIN { for (ii = 0; ii < 256; ++ii) { ch = sprintf("%c", ii); ascii[ch] = ii; } for (ii = 1; ii < ARGC; ii++) { printf "ord(" ARGV[ii] ") = " ascii[ARGV[ii]]; } }
### --


论坛徽章:
0
2 [报告]
发表于 2019-01-22 16:17 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
5
白羊座
日期:2014-10-28 11:23:27水瓶座
日期:2015-01-20 10:19:022015亚冠之柏斯波利斯
日期:2015-07-11 18:17:2015-16赛季CBA联赛之同曦
日期:2015-12-23 12:38:582016猴年福章徽章
日期:2016-02-18 15:30:34
3 [报告]
发表于 2019-01-22 18:58 |只看该作者
  1. BEGIN {
  2.     for (ii = 0; ii < 256; ++ii) {
  3.         ch = sprintf("%c", ii)
  4.         ascii[ch] = ii
  5.     }
  6.     for (ii = 1; ii < ARGC; ii++) {
  7.         if(length(ARGV[ii])>1){break}
  8.         print "ord(" ARGV[ii] ") = " ascii[ARGV[ii]];
  9.     }
  10.     FS=""
  11. }
  12. {
  13.     for(i=1;i<=NF;++i){
  14.         print "ord(" $i ") = " ascii[$i];
  15.     }
  16. }
复制代码

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
4 [报告]
发表于 2019-01-23 12:42 |只看该作者
回复 3# klainogn

#,; PWD=/mnt/i/je-d/sou-d
10975  # 2019-01-23 12:33:33 1548218013 # awk -f 1.foo.awk 1 2 3
ord(1) = 49
ord(2) = 50
ord(3) = 51
awk: 1.foo.awk:10: fatal: cannot open file `1' for reading (No such file or directory)
#,; PWD=/mnt/i/je-d/sou-d
10976  # 2019-01-23 12:33:36 1548218016 # echo 123 | awk -f 1.foo.awk
ord(1) = 49
ord(2) = 50
ord(3) = 51
#,; PWD=/mnt/i/je-d/sou-d
10977  # 2019-01-23 12:33:58 1548218038 # cat -n 1.foo.awk
     1  BEGIN {
     2      for (ii = 0; ii < 256; ++ii) {
     3          ch = sprintf("%c", ii)
     4          ascii[ch] = ii
     5      }
     6      for (ii = 1; ii < ARGC; ii++) {
     7          if(length(ARGV[ii])>1){break}
     8          print "ord(" ARGV[ii] ") = " ascii[ARGV[ii]];
     9      }
    10      FS=""
    11  }
    12  {
    13      for(i=1;i<=NF;++i){
    14          print "ord(" $i ") = " ascii[$i];
    15      }
    16  }



您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP