shell中常用命令

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
	#-p参数可以保证递归创建,就是可以直接嵌套创建文件夹
	mkdir -p $write_path
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值