linux脚本文件txt,linux shell脚本怎么获取目录下所有txt文件名称?

现在想写一个脚本,把当前目录下所有txt文件的分隔符|替换为|+|,现在我可以把只定文件的字符正确替换了,但是不知道怎么获取文件名称。刚开始学习,还不太明白,还请大家指教。急求急求,谢谢

下面是我写的shell内容:

sed   's/|/|+|/g' $*.txt > 2.txt

mv 2.txt $*.txt

|

可以在当前目录下,创建一个临时目录, 例如:

mkdir td

然后,执行下面的命令:

find . -name "*.txt" -exec sh -c "sed 's/|/|+|/g' {} >./td/{}"  ;

这个时候,所有的输出文件都存放到 ./td目录下了.

你可以使用下面的命令:

mv ./td/* .

将输出文件更换为原来的目录下.

|

回复楼主:

可以写个脚本实现,稍描当前路径下所有的.txt 文件,并替换分隔符|替换为|+| 。 假设脚本名为 :sedtxt.sh 内容如下

#!/user/bin/ksh

##########################################

#XXXXX LD.CO

#FUNCTION: 替换文件分隔符

#AUTH: WUCG

#DATE: 2009-07-09

#######################################

#进入指定的目录

PATH="CURR_DIR"   #这个路径需要根据需要修改

cd $PATH

for filename in `ls *.txt`

do

sed  's/|/|+|/g' $filename  > ${filename}.tmp

mv ${filename}.tmp $filename

done

exit

###########  脚本结束 ############################

脚本结束后,给脚本赋予可执行权限, chmod u+x sedtxt.sh , 然后执行该脚本,就可以了 sh ./sedtxt.sh

祝你好运!!!!

|

sed  -i 's/|/|+|/g' $*.txt

试试这个-i参数

|

sed -i "s/|/|+|/g" `find . -name *.txt`

你可能感兴趣的:(linux脚本文件txt)