1.判断/etc/passwd文件是否存在,如果存在则返回信息“文件已存在”,反之新建该文件
[root@localhost ~]#vim test.sh
[root@localhost ~]#cat test.sh
#!/bin/bash
a="/etc/passwd"
if [ -e "$a" ]
then
echo "文件存在"
else
touch /etc/passwd
echo "文件已创建"
fi
[root@localhost ~]#bash test.sh
文件存在
[root@localhost ~]#rm -rf /etc/passwd
[root@localhost ~]#bash test.sh
文件已创建
2.提取host.txt文件中的主机名后再放回host.txt文件
1 www.kgc.com
2 mail.kgc.com
3 ftp.kgc.com
4 linux.kgc.com
5 blog.kgc.com
[root@localhost ~]#vim host.txt
[root@localhost ~]#cat host.txt
1 www.kgc.com
2 mail.kgc.com
3 ftp.kgc.com
4 linux.kgc.com
5 blog.kgc.com
[root@localhost ~]#vim host.sh
[root@localhost ~]#cat host.sh
#!/bin/bash
a='cat host.txt'
for i in "cat host.txt"
do
$i|awk -F[\ .] '{print $2}' >> ~/host.txt
done
$a
[root@localhost ~]#bash host.sh
1 www.kgc.com
2 mail.kgc.com
3 ftp.kgc.com
4 linux.kgc.com
5 blog.kgc.com
www
mail
ftp
linux
blog
3.批量改文件的后缀名
当前文件夹下有统一格式的文件30个,格式如下
姓名_学号_班级.jpg 张三_01_03.jpg
现要求改成 学号_姓名.jpg 01_张三.jpg
我们可以利用sed切片重组进行修改
[root@localhost ~]#ls /opt/test/
蔡徐坤_01_03.jpg 李易峰_01_03.jpg 肖战_01_03.jpg 张艺兴_01_03.jpg
陈伟霆_01_03.jpg 刘德华_01_03.jpg 谢霆锋_01_03.jpg 张译_01_03.jpg
成龙_01_03.jpg 鹿晗_01_03.jpg 薛之谦_01_03.jpg 周杰伦_01_03.jpg
胡歌_01_03.jpg 王俊凯_01_03.jpg 杨洋_01_03.jpg 周深_01_03.jpg
黄家驹_01_03.jpg 王一博_01_03.jpg 易烊千玺_01_03.jpg 周星驰_01_03.jpg
黄子韬_01_03.jpg 王源_01_03.jpg 张国荣_01_03.jpg 朱一龙_01_03.jpg
郎朗_01_03.jpg 吴京_01_03.jpg 张杰_01_03.jpg
李现_01_03.jpg 吴磊_01_03.jpg 张若昀_01_03.jpg
[root@localhost ~]#vim test.sh
[root@localhost ~]#bash test.sh
[root@localhost ~]#ls /opt/test/
01_蔡徐坤.jpg 01_郎朗.jpg 01_王一博.jpg 01_薛之谦.jpg 01_张艺兴.jpg
01_陈伟霆.jpg 01_李现.jpg 01_王源.jpg 01_杨洋.jpg 01_张译.jpg
01_成龙.jpg 01_李易峰.jpg 01_吴京.jpg 01_易烊千玺.jpg 01_周杰伦.jpg
01_胡歌.jpg 01_刘德华.jpg 01_吴磊.jpg 01_张国荣.jpg 01_周深.jpg
01_黄家驹.jpg 01_鹿晗.jpg 01_肖战.jpg 01_张杰.jpg 01_周星驰.jpg
01_黄子韬.jpg 01_王俊凯.jpg 01_谢霆锋.jpg 01_张若昀.jpg 01_朱一龙.jpg
[root@localhost ~]#cat test.sh
for i in $(ls /opt/test)
do
a=$(echo $i|sed -r 's/(.*)(_)(.*)_(.*).jpg/\3\2\1\.jpg/')
mv /opt/test/$i /opt/test/$a
done