2023-05-05 linux shell脚本, 遍历文件夹下所有子目录的文件,并且用cat 命令读取文件内容然后复制到output目录,有什么用?不能说。

该脚本是一个bashshell程序,用于遍历指定目录及其子目录中的所有文件,根据文件后缀执行不同的操作,如将.xml文件转换为.java文件,.pdf文件转换为.bin文件,并将所有其他文件转换为.bin。转换过程中,源文件的内容被复制到新命名的文件中,然后删除源文件。
摘要由CSDN通过智能技术生成

一、脚本内容如下,遍历某个目录下的文件,并且用cat 命令读取文件内容然后复制到output目录。

#! /bin/sh
if [ $# -lt 1 ]
    then echo 'Please input path'
    sleep 2s
    exit
fi

export ret
java_suffix=.java
xml_suffix=.xml
pdf_suffix=.pdf

rm -r output

mkdir output
function allfiles(){

	for file in `ls $1`
	do
	    if [ -d $1"/"$file ]
	    then
		allfiles $1"/"$file
	    else 
                #ret=$1"/"$file"\n"
                ret=$1"/"$file

                mkdir -p output/$1
                echo -e  output/$ret

		if [[ $ret == *$xml_suffix* ]]
			then
                            #echo -e  path=$1
			    #echo -e $xml_suffix:$ret
                            newname=`echo $ret |sed 's/\.xml/\.java/'`
                            #echo  "cat " $ret ">" output/$newname >>xml.txt
                            #echo  "cat " output/$newname ">"  output/$ret>>xml_init.txt
                            cat $ret >output/$newname
                            cat output/$newname  >output/$ret
                            rm  output/$newname
                            #cat $ret >output/$ret
                 elif [[ $ret == *$pdf_suffix* ]]
                          then
                             newname=`echo $ret |sed 's/\.pdf/\.bin/'`
                             cat $ret >output/$newname
                             cat output/$newname  >output/$ret
                             rm  output/$newname
                 else
                             echo -e  path=$ret
                             file_suffix=`echo ${ret#*.}`
                             echo -e  the suffix of file=$file_suffix
                             newname=`echo ${ret/%.$file_suffix/.bin}`
                             echo -e   newname=$newname
                             cat $ret >output/$newname
                             cat output/$newname  >output/$ret
                             rm  output/$newname
                             #cat $ret >output/$ret

		fi
	    fi
	done
}

allfiles $1
sleep 2s

二、运行效果如下

 三、参考文章

我的第一个shell脚本, 遍历文件夹下所有文件(包含子目录) - 简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值