1、循环读取
for ip in $(seq 1 4)
do
...
done
逐行读取
一、
for line in $(cat a.txt)
do
echo $line
done
二、
cat a.txt| while read line
do
echo $line
done
三、
while read line
do
echo $line
done < a.txt
2、字符过滤
grep -v aaa
-i 不区分大小写
-w 全匹配
-v 排除
3、字符串切割
1)[oracle@orax ~]$ echo "1=5=3=4" |cut -d '=' -f 2
5
cut命令主要是接受三个定位方法:
第一,字节(bytes),用选项-b
第二,字符(characters),用选项-c
第三,域(fields),用选项-f
如kill含有xuanxx的所有进程
ps -ef|grep xuanxx|cut -c 10-15|xargs kill 9
2)[oracle@orax ~]$ echo "1=5=3=4" |awk -F"=" '{print $3}'
3
4、字符替换
sed -i 's/xuan/xuAn/g' a.txt
5、统计
wc -l 总行数
wc -L 字符长度
6、查找和处理
1)时间查找
两天前
[oracle@orax ~]$ find /home/oracle/ -type f -mtime +2 -name *txt
前两天到现在
[oracle@orax ~]$ find /home/oracle/ -type f -maxdepth 1 -mtime -2 -name *txt
2)排序
[oracle@orax ~]$ sort a.txt
倒序 sort -r a.txt
3)去重
cat a.txt|sort|uniq
3)批量处理
[oracle@orax ~]$ find /home/oracle/ -type f -mtime +2 -name *txt -exec rm {} \;
[oracle@orax ~]$ find /home/oracle/ -type f -mmin +60 -name *txt -exec rm {} \;
查找包含内容文件
find /home/gbase/xuanxx/ -type -f |xargs grep "IP" -l \;
字符集替换
${变量/查找/替换值}
a=xxx_n1
echo ${a/_n1/n2}
xxx_n2