linux 小技巧总结
(1)linux判断文件是否存在
if [ -f filename]; then
。。。。。。#要执行的语句
fi
具体例子:
file=/usr/local/oracle/oradata/archived_log/file.txt
if [ -f $file
];then
#判断文件是否存在,存在就追加
echo $file_i >> $file
else
#否则复写
echo $file_i > $file
fi
fi
(2)按行读取文件
record=/usr/local/oracle/oradata/archived_log/recordarch
file=/usr/local/oracle/oradata/archived_log/file.txt
for file_i in `cat $record`;
do
echo
$file_i
scp -C $file_i
aaa@192.168.1.106:/d:/redo
flag=$(echo
$?)
#判断SCP是否发送成功,成功返回0
if [ $flag -eq 0 ];then
#rm
$file_i
sed -i ‘/‘‘‘$file_i‘‘‘/d‘ $record
echo
"success delete $file_i"
if [ -f $file
];then
#判断文件是否存在,存在就追加
echo $file_i >> $file
else
#否则复写
echo $file_i > $file
fi
fi
done
(3)从一个文件夹读取文件
#!/bin/bash
#coding=utf8
record=/usr/local/oracle/oradata/archived_log/recordarch
cd
/usr/local/oracle/archive/
for file_i in `find ./ -mmin -1|grep
‘dbf‘`;
#在当前目录下查找包含dbf的在一分钟内生成的文件
do
#cp $file_i
/usr/local/oracle/oradata/archived_log
file_changed=$(echo
$file_i |awk -F ‘/‘ ‘{print
$2}‘)
#去掉./
awk用法
echo $file_changed
echo $file_changed
>> $record
done
(4)cut和awk用法
start_s=$(echo $start | cut -d ‘.‘ -f 1)
time2=$(echo "$time" | awk ‘{print $1/1000.0}‘)