首页 > 代码库 > linux 小技巧总结

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}‘)