编写一个shell程序,将文件的.txt后缀名删除的程序

回复 收藏
答案一:
#!/bin/bash
for i in `ls *.txt`
do
p=`echo $i|awk -F. '{print $1}'`
mv $i $p
done

答案二:find -type f -name '*.txt' -print0 | xargs --null rename '.txt' ''
2011-05-16 15:22 举报
已邀请:
0

wikilike7

赞同来自:

find . -type f -name '*.txt' |awk -F '.' '{print $2}' |sed 's/\///'

貌似复杂了,不简洁
0

乐宝儿

赞同来自:

学习了  {:5_121:}
0

齐天大圣

赞同来自:

awk什么地方都是可以用的!,真是神器啊
0

lyhabc

赞同来自:

 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕
0

lyhabc

赞同来自:

df -h |awk -F '[ %]+' '$5 > 50 {print $0}'|grep -v Use
0

xy751625718

赞同来自:

本帖最后由 xy751625718 于 2016-3-7 22:26 编辑
  1. #!/bin/bash
  2. for f in *.txt
  3. do
  4. mv $f  ${f%.*}
  5. done
0

18222687976

赞同来自:

由于rename有2个版本  Linux的rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的

我是perl的  只能使用这个 楼主的使用不了
find -type f -name '*.sh' -print0 | xargs --null rename 's/.sh//'


回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: