Chinaunix
标题:
求助 关于对 cat 一个文件内容输出 的 屏蔽(或者替换)
[打印本页]
作者:
Chrome
时间:
2010-12-25 21:45
标题:
求助 关于对 cat 一个文件内容输出 的 屏蔽(或者替换)
pp.txt 内容如下:
------------------------我是分割线-------------------
wangwu 20101220 密码是 1234567 登陆时间 20101024 washdsksfjf
liwliu 20101220 密码是 2345678 登陆时间 20101022 dpoidfoweof
haha 20101220 密码是 3498292 登陆时间 20101022 djsdfewpoei
wwu 20101220 密码是 2132334 登陆时间 20101019 fjgforoiretrt
tianxia 20101220 密码是 8900988 登陆时间 20100908 bnboeieie
------------------------我是分割线-------------------
执行 input.sh 进行内容选择:
------------------------我是分割线-------------------
echo -n "input name:"
read IN
name=$IN
cat pp.txt | grep -i $name
------------------------我是分割线-------------------
运行该SHELL,输入wwu,则从 pp.txt 文件中匹配出对应内容:
wwu 20101220 密码是 2132334 登陆时间 20101019 fjgforoiretrt
===================================================================
1、我现在想,把输出的登陆情况中,把 7位数字密码 进行屏蔽(或者替换)。比如,输入 wwu,则显示结果如下:
wwu 20101220 密码是 ******* 登陆时间 20101019 fjgforoiretrt
2、如果 输入 logout ,则退出系统登陆。
路过的各位,给帮个忙,看看这个脚本怎么写啊。。。
作者:
Chrome
时间:
2010-12-25 21:47
呵呵,路过的各位给推荐推荐吧。。。谢谢啦。。。我知道很基础的知识,但是以前没接触过。。。谢谢了
作者:
jason680
时间:
2010-12-25 22:07
试试
cat pp.txt | grep -i $name | awk '{ $4="********";print $0 }'
作者:
zzy7186
时间:
2010-12-25 22:13
#!/bin/bash
read -p "input name:" IN
if [ "$IN" == "logout" ]
then
eval $IN
else
name=$IN
cat d | grep -i $name | awk '{$4="*******";print}'
fi
复制代码
作者:
Chrome
时间:
2010-12-25 22:18
替换:s命令
sed 's/west/north/g' datafile
解释:找到datafile中的所有west并替换成north,将替换后的内容输出到屏幕。
sed 's/[0-9][0-9]$/&.5/' datafile
解释:在替代串里的&字符代表在搜索串中真正找到的。
每个以两个数字结尾的行都被它自己取代,且要在后面加上.5
sed -n 's/Hemenway/Jones/gp' datafile
解释:所有的Hemenway所在的位置都用Jones来取代,而且只有改变的行被打印。
-n与p命令选项相结合来禁止默认输出。g代表全局替换
作者:
Chrome
时间:
2010-12-25 22:19
谢谢各位。。。挖哈哈哈
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2