1、windows和linux换行符切换
sed -i 's/\r//g' $read_file
read_file是要修改的文件变量
2、读取文件并遍历
for line in $(cat $read_file)
do
echo $line
done
3、删除字符串前边指定的内容(从前往后匹配)
delete_pre_str=${原字符串##substring}
例如:
原字符串:test_delete.py
substring:就是想要删除的部分,如这里删掉test_
res=${test_delete.py ## *_}
其中
4、删除字符串后边指定的内容(从后往前匹配)
delete_pre_str=${原字符串 % substring}
例如:
原字符串:test_delete.py
substring:就是想要删除的部分,如这里删掉.py
res=${test_delete.py % .*}
其中%表示从后边最短匹配,*表示任意匹配
5、 字符串和变量拼接
var="love"
echo "${var} you"
注意:
两个字符串直接写在一起就算拼接
echo "i " "love" "you"
6、find 指定目录查找指定文件名
files=$(find 指定路径 -name 文件名)
例如:查找当前路径下,以.txt结尾的文件
1、文件名是字符串的情况:
files=$(find ./ -name "*.txt")
2、文件名是变量情况:
var='.txt'
files=$(find ./ -name "*$var")
7、find找到文件,并执行操作
方法1
1、查找文件并执行命令
需求:复制当前文件夹下以.txt结尾的文件到上一层目录
(以下命令是直接查找并执行操作,所以不需要想上一个小结,用files接收返回值,其中-print,可以把找到的内容打印到终端显示)
find ./ -name "*$var" -print -exec cp -r {} ../ \;
注意:
{}中间没有空格
最后必须有:\;
而且这两个之间不能有空格
方法2
利用find找到目标文件,然后遍历返回值进行操作
files=$(find ./ -name "*.txt")
for file in files
do
echo $file
cp $file ../
done
8、判断文件夹是否存在,不存在新建
write_path=./test/dir
if [! -d "$write_path"]
then
mkdir -p $write_path
fi