Shell脚本练习

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

相关推荐

  1. Shell脚本练习

    2024-02-15 10:40:02       57 阅读
  2. shell脚本每日练习

    2024-02-15 10:40:02       38 阅读
  3. shell 脚本基础练习

    2024-02-15 10:40:02       41 阅读
  4. 实战:shell脚本练习

    2024-02-15 10:40:02       17 阅读
  5. shell练习

    2024-02-15 10:40:02       47 阅读
  6. Shell脚本

    2024-02-15 10:40:02       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-15 10:40:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-15 10:40:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-15 10:40:02       82 阅读
  4. Python语言-面向对象

    2024-02-15 10:40:02       91 阅读

热门阅读

  1. Electron实战之入门

    2024-02-15 10:40:02       45 阅读
  2. sqlserver2012 解决日志大的问题

    2024-02-15 10:40:02       52 阅读
  3. 寒假学习记录16:Express框架(Node)

    2024-02-15 10:40:02       60 阅读
  4. TypeScript快速入门

    2024-02-15 10:40:02       56 阅读
  5. MySQL定时备份及清理脚本(一劳永逸)-改良版本

    2024-02-15 10:40:02       55 阅读
  6. JVM指令手册

    2024-02-15 10:40:02       34 阅读