sh/bash/dash/ksh/zsh等Shell脚本
-
ciclo
- 帖子: 786
- 注册时间: 2007-01-25 16:43
- 来自: 塔尔塔洛斯
#1
帖子
由 ciclo » 2008-01-02 21:09
想做电子书:
一个文件夹下的文件全部是这样:
001.txt
002.txt
003.txt
...
130.txt
里面的内容开头如下:
001.txt
代码: 全选
史记
史记卷一 五帝本纪 第一
*集解凡是徐氏义,称徐姓名以别之。余者悉是骃注解,并集觽家义。索隐纪者,记
也。本其事而记之,故曰本纪。又纪,理也,丝缕有纪。而帝王书称纪者,言为后代纲
...
想把每个文件改名成这样:
这样的脚本大概该怎么写?
谢谢!
-
eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
#2
帖子
由 eexpress » 2008-01-02 21:29
head -n 2|tail -n 1
bash的超强字符串处理,去掉前面2个字,附加上.txt
tr去掉空格,
剩下mv就是了。
● 鸣学
-
iblicf
- 帖子: 3766
- 注册时间: 2007-01-15 17:15
#3
帖子
由 iblicf » 2008-01-02 22:24
也不一定是第二行,脚本处理更好一点 。。
代码: 全选
#!/bin/bash
Target=./tt/
if [ ! -d $Target ] ;then
mkdir $Target
fi
for i in *.txt
do
f=${i%.*}
t=`awk '/^史记./ { printf("%s%s%s", $1,$2,$3) }' $i`
cp $i $Target$f$t.txt
done
-
ciclo
- 帖子: 786
- 注册时间: 2007-01-25 16:43
- 来自: 塔尔塔洛斯
#4
帖子
由 ciclo » 2008-01-03 16:58
多谢楼上二位,
基本搞定
还有个问题,
这里的空格是全角空格,用tr删的话会出现乱码,有没有更好的方法?
-
iblicf
- 帖子: 3766
- 注册时间: 2007-01-15 17:15
#5
帖子
由 iblicf » 2008-01-03 17:31
sed -e '1,3 s/ / /g' 1-3 行的全角换半角 ( 你可以copy )
-
guocb
- 帖子: 20
- 注册时间: 2008-01-10 0:02
#6
帖子
由 guocb » 2008-01-10 0:16
这个还是有一定工作量的
但是技术上面没有什么特殊的