24小时热门版块排行榜    

查看: 437  |  回复: 2

lyfxie8607

木虫 (著名写手)

[求助] 求脚本 已有1人参与

本人有一个大文件,想把它切割成若干个小文件。
文件中每隔不定行就有一行$$$$符号例如:
1
2
3
$$$$
4
5
$$$$
6
7
8
9
$$$$
现在我想把文件分成三个小文件,分别包含$$$$符号及之前的内容如
1
2
3
$$$$
我现在想先用grep把$$$$的行号提取出来,保存成line.txt文件,之后按照行号在大文件中提取内容并保存成其他小文件
grep -n '\$\$\$\$' ***.txt  | cut -d: -f1 > line.txt
之后用sed命令按照行号提取$$$$和上一个$$$$之间的内容,
sed -ne 'm,n p' line.txt
需要做个循环,做懵了,哪位大哥大姐能帮帮忙,我不太会编程,弄了两天才学会这点东西。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jerkwin

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
lyfxie8607: 金币+5 2013-12-25 08:38:45
你的方法可行, 但是sed中的m, n需要是变量
不明白你到底要怎么分成三个小文件
如果就是平均分, 不用那么麻烦
wc得到总行数, 然后获得分割行数, sed输出即可
最后再把里面的$$$$替换掉
2楼2013-12-24 22:46:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lyfxie8607

木虫 (著名写手)

引用回帖:
2楼: Originally posted by jerkwin at 2013-12-24 22:46:49
你的方法可行, 但是sed中的m, n需要是变量
不明白你到底要怎么分成三个小文件
如果就是平均分, 不用那么麻烦
wc得到总行数, 然后获得分割行数, sed输出即可
最后再把里面的$$$$替换掉

不是平均分的,m和n要从line.txt中读取
怎么将m和n两个变量定义为整数呢?
shell中怎么实现?
3楼2013-12-25 08:38:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lyfxie8607 的主题更新
信息提示
请填处理意见