shell 脚本基础#
shell 脚本调试#
-n,读一遍脚本中的命令但不执行,用于检查脚本中的语法错误
-v,一边执行脚本,一边将执行过的脚本命令打印到标准错误输出
-x,提供跟踪执行信息,将执行的每一条命令和结果依次打印出来
shell 脚本对文本中无序的一列数字排序#
[root@server ~]# sort -n 190307.txt | awk '{a+=$0;print$0} END {print "sum="a}'
shell 命令查看文件空行行号#
[root@server ~]# grep -n ^$ filename
[root@server ~]# sed -n '/[a-zA-Z0-9@#$%^&*]!=' filename
[root@server ~]# sed -n '/^$/=' filename
[root@server ~]# awk '/^$/{print NR}' filename
shell 文件夹操作#
- 删除一个文件夹下所有文件但是不删除文件夹
[root@server-ai ~]# find . -type f | xargs rm -f
- 只复制目录的结构,而不复制目录的内容
[root@server-ai ~]# find ~ -type d -exec mkdir -p demo/\{\} \;
- 查找当前文件夹下所有的文本文件内容中包含有字符”math” 的文件名称
[root@server-ai ~]# grep -r "math" /home/chenjiawei/test/shell/ | cut -d ":" -f 1
-
遍历目录及其子目录中的所有文件
#! /bin/bash function read_dir(){ for file in `ls $1` #注意此处这是两个反引号,表示运行系统命令 do if [ -d $1"/"$file ] #注意此处之间一定要加上空格,否则会报错 then read_dir $1"/"$file else echo $1"/"$file #在此处处理文件即可 fi done } #读取第一个参数 read_dir $1
执行命令
$ sh traveDir.sh DIR_NAME