有个文本文件,N 行
- a1.txt
a7.txt
d9.log
3j.log
i6j.log
.
.
.
abc.ini
复制代码
现在想把 log 文件名里面的数字去掉,请假一下大佬们应该怎么写啊
热议
推荐楼 zdszf
sed -i "s/[0-9]//g" filename
2楼 zxxx
d9.log -> d.log
d1.log -> d.log
这样吗?
3楼 your
一个循环可以搞定吧!!
我们所度过的每个平凡的日常,也许就是连续发生的奇迹。——《日常》
4楼 呼啦啦
对的,就是这样
5楼 呼啦啦
求大佬赐教啊
6楼 龟龟酱
文件名取成变量
然后
NEW=$(echo $xxx|sed s?1??g | sed s?2??g |sed s?3??g |sed s?4??g |sed s?5??g |sed s?6??g |sed s?7??g |sed s?8??g |sed s?9??g )
mv $LOD.log $NEW.log
比较蠢的办法,见谅~
7楼 2bitO
更新:20210525 17:46
搞错楼主的意思了,楼主的意思是修改一个文件里面的内容,我这个脚本是修改当前目录下的文件名字(去数字)
以下为原文
----------------------------------------------------------------
ls *.txt | grep -v $0 | while read line;
do
file_name=$(echo "${line}" | awk -F'.' '{print $1}')
extension=$(echo "${line}" | awk -F'.' '{print $2}')
new_file_name=$(echo "${file_name}" | sed -e "s/[0-9]//g")
new_file_name_full=''"${new_file_name}"'.'"${extension}"''
mv "${line}" "${new_file_name_full}"
done
8楼 ivanhao
这要是一千个就没法搞了啊,估计是要用到循环
10楼 龟龟酱
取文件名肯定要
我刚才居然忘了sed可以[1-9]。。。
老了老了
12楼 驴总
只会一点python
import re
with open('C:\\Users\\Administrator\\Desktop\\aaa.txt', 'r+', encoding='utf-8') as f:
content = f.read()
f.seek(0, 0)
f.truncate()
new_content = re.sub(r'[0-9]', '', content)
f.write(new_content)
13楼 wangjianjilei
我不会shell,直接拿php读取文件,按行读取,然后正则匹配,最后写回去