Linux shell 脚本(模版) 命令汇总

29 篇文章 0 订阅

shell 脚本 常用命令

#获取当前目录所在路径
workpath=`pwd`

#清空DIFF.txt文件
cat /dev/null > $workpath/DIFF.txt

参考:IFS:内部字段分隔符(internal field separator)
默认情况下,bash shell会将下面的字符当做字段分隔符:空格、制表符、换行符

# IFS修改:
 IFS=','  
# 改回默认的IFS值: 
IFS.OLD=$IFS
#循环遍历多个文件
TBL_LIST="a.txt b.txt c.txt"
for tbl in $TBL_LIST
do
	#按行读取tbl文件: a.txt ...
	while IFS= read line
	do
		#cut -b : 
		kisob=`echo $line | cut -b 2-6`
		echo $kisob
	done < $workpath/$tbl
done

参考:shell字符串截取之cut命令

  • cut -b : 字节(bytes),用选项-b
  • 字符(characters),用选项-c
  • 域(fields),用选项-f

  • uniq所谓的重复是连续出现的相同记录。而sort -u是全局的。 先sort,再用uniq可以实现sort -u(即sort -u file.txt 等价于sort file.txt | uniq)
    参考:uniq与sort -u去重区别和联系
#消除文件重复行
 sort -u $workpath/Duplicate_lines.txt >> $workpath/single_line.txt
 #消除临时文件
 rm $workpath/Duplicate_lines.txt

#生成1000条insert数据
DATA_FMT="','0','20220909 00:00:00 ',' ',' 122'"
for ((i=2000; i<=2999; i++))
do
	echo "'u"$i$DATA_FMT >> $workpath/INSERT_TBL.txt
done

echo -e : 处理特殊字符, 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
参考:echo -n 和echo -e 参数意义

\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
#打印开始结束时间并写入日志
echo -e "`date +"%Y/%m/%d"` `date +"%T"` 处理开始" | tee -a $logfile

tee -a : 向文件里面追加内容:每次的输出是追加到文件里面,这时我们可以通过-a参数来指定。
参考:【Linux】tee命令


# INSERT_SQL 语句生成 
# $line : 'u2000','0','20210909 00:00:00 ', ... ,' ','122'
while IFS= read line
do
	echo 'INSERT INTO USER_TABLE(column1, column2, ...) VALUES ('$line');' >> $workpath/INSERT_TBL.sql
done < $workpath/INSERT_TBL.txt

#执行SQL并写入日志
pdsql < $workpath/INSERT_TBL.sql >> $logfile

# 执行上一个指令的返回值
rtncd=$?

#$0:Shell本身的文件名 $1:第一个参数名 $2:第二个参数名
logfile=$workpath/$0.log

$? : 最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
参考: Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值代表意义


  • wc -l : 统计行数
# 统计文件行数
wc -l INSERT_TBL.sql | tee -a $logfile

参考:linux 中wc 用法小结


hirdb 执行 参数解析
echo "source $DATA_PATH/rorg_$db.unload" > pdload_KYUFUON.cntl
pdload -d -e -i c -l n -x -z $db pdload_KYUFUON.cntl

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小泉映月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值