Linux笔记之用for循环给目录下所有文件添加一行空行

版权声明:本文为博主原创文章,如未特别声明,均默认使用CC BY-SA 3.0许可。 https://blog.csdn.net/Geek_of_CSDN/article/details/82059333

首先创建一个.sh文件,然后编辑里面的内容:

#!bin.sh
for file in ./*
do
    echo "">>$file
done

保存之后sh xxx.sh就行了(xxx.sh换成你的文件名)。

解释:

第一行其实就是写来表明这是一个bash文件,和python的第一行意义差不多。

其实linux的for循环有三种,一种是列表for循环、不带列表for循环、类似c的for循环。上面用到的就是列表for循环,学过python的话就会觉得这种写法很熟悉了。这里的for file in ./*会将当前目录下所有的文件名字传给变量file

echo "">>$file就是将空行添加到变量$file(加上$才是代表变量)末尾,注意要是>>而不是>,如果是>的话就会把原来文件里面的内容全部覆盖成现在输入的内容。具体用法自己查echo的用法。

但是这样还不是不够完美,如果目录下出现了子目录的话上面的脚本就不能用。这时候就要对文件类型进行检测,如果是目录的话就自动跳过:

#!bin.sh
for file in ./*
do
    if test -f $file
    then
        echo "">>$file
    fi
done

上面的判断条件就是,当输入的文件名确实是文件而不是目录的时候,就执行echo命令。

参考

Linux for循环之列表for循环:大部分内容都是基于这篇文章的
shell编程–遍历目录下的文件

猜你喜欢

转载自blog.csdn.net/Geek_of_CSDN/article/details/82059333