忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
论坛 程序设计 Shell cat a-z
最近访问板块 发新帖
查看: 619 | 回复: 9

[文本处理] cat a-z [复制链接]

论坛徽章:
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
发表于 2017-11-06 08:10 |显示全部楼层
本帖最后由 1cpuer 于 2017-11-06 08:39 编辑

# cat a-z
a b c d e f g h i j k l m n o p q r s t u v w x y z
b c d e f g h i j k l m n o p q r s t u v w x y z a
c d e f g h i j k l m n o p q r s t u v w x y z a b
d e f g h i j k l m n o p q r s t u v w x y z a b c
e f g h i j k l m n o p q r s t u v w x y z a b c d
f g h i j k l m n o p q r s t u v w x y z a b c d e
g h i j k l m n o p q r s t u v w x y z a b c d e f
h i j k l m n o p q r s t u v w x y z a b c d e f g
i j k l m n o p q r s t u v w x y z a b c d e f g h
j k l m n o p q r s t u v w x y z a b c d e f g h i
k l m n o p q r s t u v w x y z a b c d e f g h i j
l m n o p q r s t u v w x y z a b c d e f g h i j k
m n o p q r s t u v w x y z a b c d e f g h i j k l
n o p q r s t u v w x y z a b c d e f g h i j k l m
o p q r s t u v w x y z a b c d e f g h i j k l m n
p q r s t u v w x y z a b c d e f g h i j k l m n o
q r s t u v w x y z a b c d e f g h i j k l m n o p
r s t u v w x y z a b c d e f g h i j k l m n o p q
s t u v w x y z a b c d e f g h i j k l m n o p q r
t u v w x y z a b c d e f g h i j k l m n o p q r s
u v w x y z a b c d e f g h i j k l m n o p q r s t
v w x y z a b c d e f g h i j k l m n o p q r s t u
w x y z a b c d e f g h i j k l m n o p q r s t u v
x y z a b c d e f g h i j k l m n o p q r s t u v w
y z a b c d e f g h i j k l m n o p q r s t u v w x
z a b c d e f g h i j k l m n o p q r s t u v w x y

这个文件 AWK 打印不出来吧
a=0
..
z=25



# awk 'gsub(/[a-z]/,"1&")' a-z
# awk 'gensub(/[a-z]/,"1&")' a-z
# gensub 为什么失败了?

论坛徽章:
15
程序设计版块每日发帖之星
日期:2015-10-11 06:20:0015-16赛季CBA联赛之青岛
日期:2017-06-26 18:30:0315-16赛季CBA联赛之新疆
日期:2017-04-12 22:55:4715-16赛季CBA联赛之山东
日期:2016-05-28 18:18:5615-16赛季CBA联赛之新疆
日期:2016-05-07 05:05:3215-16赛季CBA联赛之八一
日期:2016-03-14 12:32:06IT运维版块每日发帖之星
日期:2016-02-27 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-31 10:37:3615-16赛季CBA联赛之同曦
日期:2016-01-24 17:51:44狮子座
日期:2016-01-11 11:25:34酉鸡
日期:2016-01-11 11:24:2415-16赛季CBA联赛之北控
日期:2016-01-02 13:16:52
发表于 2017-11-06 10:03 |显示全部楼层
gensub 并不会修改原始数据,需要进行重新赋值
awk '{$0=gensub(/[a-z]/,"1&","g");print $0}'
或者
awk '{print gensub(/[a-z]/,"1&","g")}'

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2017-11-06 10:27 |显示全部楼层
回复 1# 1cpuer


这个文件awk能打印出来。

论坛徽章:
0
发表于 2017-11-06 11:48 |显示全部楼层
$字符串 = 'abcdefghijklmnopqrstuvwxyz'
$字符串[0..25] #字符串直接遍历,当数组用。
$数组 = $字符串.ToCharArray() #字符串-》静态数组

[System.Collections.ArrayList]$动态数组 = $数组
#动态数组可以插入,删除。
你这个例子,删除头,插入到尾,然后打印即可。

powershell ≈=  bash + python 以简单强大著称。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2017-11-06 11:51 |显示全部楼层
回复 1# 1cpuer


  1. echo "a b c d e f g h i j k l m n o p q r s t u v w x y z"|awk '{for(i=1;i<=NF;i++){y="(.*) *("$i".*)";print gensub(y,"\\2 \\1","g")}}'
  2. echo "a b c d e f g h i j k l m n o p q r s t u v w x y z"|awk '{for(i=1;i<=NF;i++){y="(.*) *("$i".*)";match($0,y,t);print t[2],t[1]}}'
  3. echo "a b c d e f g h i j k l m n o p q r s t u v w x y z"|awk '{for(i=1;i<=NF;i++){match($0,""$i"");print substr($0,RSTART),substr($0,1,RSTART-1)}}'
复制代码

论坛徽章:
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
发表于 2017-11-06 17:09 |显示全部楼层
回复 5# wh7211

substr($0,1,RSTART-1)

这个不大懂
RSTART 是 AWK 的函数吗?

总的来说是佩服的

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之同曦
日期:2017-09-11 14:39:48
发表于 2017-11-06 18:42 |显示全部楼层
RSTART是awk内置变量,代表函数匹配的字符串的首位置。

论坛徽章:
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
发表于 2017-11-07 18:46 |显示全部楼层
本帖最后由 klainogn 于 2017-11-07 18:55 编辑

# cat test.awk
BEGIN{
        for(i=0; i<26; i++){
                for(j=0; j < 26; j++){
                        printf("%c ", 0x61+(i+j)%26)
                }
                print
        }
}
# awk -f test.awk
[/code]

论坛徽章:
120
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07巳蛇
日期:2014-05-09 16:43:18巨蟹座
日期:2014-10-23 17:48:38子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59
发表于 2017-11-07 22:53 |显示全部楼层
回复 1# 1cpuer

$ echo 0 5| awk '{for(n=$1;n<=$2;++n){for(m=n;m<=n+$2;++m)printf("%c ",(m%($2+1))+97);print""}}'
a b c d e f
b c d e f a
c d e f a b
d e f a b c
e f a b c d
f a b c d e

$ echo 0 10| awk '{for(n=$1;n<=$2;++n){for(m=n;m<=n+$2;++m)printf("%c ",(m%($2+1))+97);print""}}'
a b c d e f g h i j k
b c d e f g h i j k a
c d e f g h i j k a b
d e f g h i j k a b c
e f g h i j k a b c d
f g h i j k a b c d e
g h i j k a b c d e f
h i j k a b c d e f g
i j k a b c d e f g h
j k a b c d e f g h i
k a b c d e f g h i j

$ echo 0 25| awk '{for(n=$1;n<=$2;++n){for(m=n;m<=n+$2;++m)printf("%c ",(m%($2+1))+97);print""}}'
a b c d e f g h i j k l m n o p q r s t u v w x y z
b c d e f g h i j k l m n o p q r s t u v w x y z a
c d e f g h i j k l m n o p q r s t u v w x y z a b
...
x y z a b c d e f g h i j k l m n o p q r s t u v w
y z a b c d e f g h i j k l m n o p q r s t u v w x
z a b c d e f g h i j k l m n o p q r s t u v w x y


论坛徽章:
7
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:41程序设计版块每日发帖之星
日期:2016-07-04 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-08-09 06:20:00
发表于 2017-11-14 17:47 |显示全部楼层
echo {a..z} {a..z}|awk '{for(i=1;i<=26;i++){k=i+25;for(j=i;j<=k;j++){printf $j" "}print x}}'
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP