在学习 linux shell 语言的时候,有一章节 是 sed 命令,
其中有一条指令是:
sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' test_/demo.txt
# 让我a到z一个一个的敲,不,这种事我干不来,真干不来...
首先想到的是 seq 指令,这个指令只能生成数字序列,在将数字转化为 asscii ,用 awk ,抱歉,我还没学到哪里来。 这种方式暂时放放…
这里采取 {a…z} 这种形式(数组来做):
于是这么写:
a=({a..z}) ;A=({A..Z});
# 这里的 () 是不能少的,不然 变量的值就变成 '{a..z}' 这几个字符串了,因为生成数组不能少 ()
sed "y/${a[*]// /}/${A[*]// /}/" test_/demo.txt
# 这里的 ${变量// /} 将空格替换为空,也就是删除 空格操作
注意: ${a[@]} 和 ${a[*]} 有很大区别的。