shell命令把单词拆成单个字母
欢迎转载,请支持原创,保留原文链接:blog.ilibrary.me
shell命令把单词拆成单个字母
想要把一个字符串每相邻字母中间都插入一个星号,躲避审*查。 google了一下怎样把单词拆开,发现解决方法还挺多的。
echo orange | sed 's/./&*/g'
# o*r*a*n*g*e*
# 切分换行
echo orange | sed 's/./&\n/g' # sed way, Mac 下无法解析\n, 可以用真实换行来做
echo orange | sed 's/./&\
/g' # Mac 换行
echo orange | grep -o . | tr -s '\n' '*' # grep way, 就是查找字母,每个字母算一个匹配,单独占一行, 然后用tr(translate)替换换行符
echo orange | fold -w 1 | tr -s '\n' '*' # fold way
关于fold命令
fold 根据指定的宽度重新格式化文本
关于grep
-i 忽略pattern中的大小写
-r 递归地指定文件所在目录中的所有子目录中的文件
-v 查找与pattern不匹配的行
定义输出方式:
-o 仅打印出匹配的一段,而非整行
-n 打印出匹配行的行号
-l 仅打印出匹配行所在的文件
-c 打印出每个文件中匹配行的总数
-A num 显示匹配行之后的num行
-B num 显示匹配行之前的num行
-C num 相当于 -A num 与 -B num 的组合
--color=auto 将pattern在匹配行中高亮输出
参考
split-a-word-into-characters-unix http://www.runoob.com/linux/linux-comm-fold.html 如何使用grep SED 简明教程