AIX系统下sed的用法与实例——查询/打印/替换字符串并生成文件/删除
首先,使用sed命令请记住:sed命令以行为单位对文本进行处理,处理完当前行,接着下一行文本输入进行处理,依次循环。
其次,使用sed命令请记住:sed命令不会对原文件进行操作,它是对原文件的拷贝文件进行操作。
打印指定行
1)打印首行
sed -n ‘1p’ test.txt
##如果想把结果输出到文件,则这样:sed -n ‘1p’ test.txt > result.txt,以下同理。
2)打印最后一行
sed -n ‘$p’ test.txt #$代表最后一行
3)打印第一行到第五行
sed -n ‘1,5p’ test.txt
打印满足条件的筛选行
1)打印存在“hello”这个单词的行
sed -n ‘/hello/p’ test.txt
2)打印满足正则表达式:出现以ing结尾单词的行
sed -n ‘/.*ing/p’ test.txt
替换字符串并重新生成文件
1)将文本中存在的单词“hello”替换成“world”
sed ‘s/hello/world/g’ test.txt
##注意,aix系统中sed命令不支持-i参数,直接使用上面的命令就可以进行替换,如果要输出生成新文件,则sed ‘s/hello/world/g’ test.txt > newfile.txt就可以了。
如果不想用sed命令,其他命令也是可以实现的,比如:perl -p -i -e “s/hello/world/g” test.txt,同样也可以实现字符串的替换,不过perl命令会直接修改原文件,请谨记。
2)如果要批量替换路径下所有文件
sed “s/查找字段/替换字段/g” `grep 查找字段 -rl 路径`
例如:替换/home下所有文件中的字符串“hello”为“world”
sed “s/hello/world/g” `grep hello -rl /home`
注意,此命令会直接修改原文件。
我是一个小小的搬运工,让米粒变成仓廪