linux sed 批量替换多个文件中的字符串
sed -i "s/查找字段/替换字段/g" \`grep 查找字段 -rl 路径\`
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`
例如:替换/home下所有文件中的www.admin99.net为admin99.net
sed -i "s/www.admin99.net/admin99.net/g" `grep www.admin99.net -rl /home`
exp:sed -i "s/shabi/$/g" `grep shabi -rl ./`
将文件1.txt内的文字“garden”替换成“mirGarden”
sed -i "s/garden/mirGarden/g" 1.txt //sed -i 很简单
将当前目录下的所有文件内的“garden”替换成“mirGarden”
sed -i "s/garden/mirGarden/g" `ls` //其实也就是ls出多个文件名而已
设置环境变量
设置用户环境变量
修改~/.bashrc
文件,添加
PATH=$PATH:/Android/bin/
修改系统环境变量
修改/etc/profile
文件,添加
PATH=$PATH:/Android/bin/
勿删libc.so.6怎么办
linux 很多shell命令都离不开 libc.so.6
,所以如果勿删了的话,什么也做不了。不过还好有补救措施
# LD_PRELOAD=/lib/libc-2.6.1.so ln -s /lib/libc-2.6.1.so lib/libc.so.6
在命令行传递密码给scp
我在shell脚本中拷贝文件到远端服务器,可是每次提示我输入密码,很繁琐。使用输入重定向也不行,因为scp直接从tty读取密码。有没有什么解决方法呢?linux提供了另外一个工具sshpass
,可以解决这个问题
sshpass -p "123456" scp list.txt user@10.148.6.99:/path/to/destination
cat过滤重复行
排除重复行(这个只能排除相邻的重复行)
cat data.txt | uniq
要删除所有重复行,就要这样做,先排序然后在排重
cat data.txt | sort | uniq
或者
sort -u data.txt