sed 正则表达式 下如何提取文本文件的部分内容?

OOo,TeX,KO,ABI,GIMP,Picasa,ProE,QCAD,Inkscape,Kicad,Eagle
回复
juniz
帖子: 45
注册时间: 2010-04-07 16:51

sed 正则表达式 下如何提取文本文件的部分内容?

#1

帖子 juniz » 2017-04-20 23:25

文件list.txt内容如下:

代码: 全选

001/2-17-52-51-532748658.gif	364033	Fi5LGPZgbD_EhhZrxC49Etp9Xdfa	14926964281820029	image/gif	
001/2-22-29-1-884065533.jpg	38518	FvDp4H_e3Z8sHjqn6CHNBRn_zaSB	14926964278614005	image/jpeg	
001/4JeKe0VC1t.jpg	11677	Fjf2GqOtfQcZ_y_2uXDXyD0Y_L9x	14926964283045740	image/jpeg	
002/110.jpg	77416	FhlL5PF63z0GDBmXnuWW24jhuPkl	14926964284092463	image/jpeg	
110.jpeg	77416	FhlL5PF63z0GDBmXnuWW24jhuPkl	14926962829501874	image/jpeg	
54d33194N0386d26e.jpg	142711	FgPvlchq_JQRQNlJR2rrSS4MtJJI	14926962828885044	image/jpeg	
54d33195N0bebfdfd.jpeg	186356	FqDSpj2rJD9El0rd7ljyblB_DhK6	14926962832215361	image/jpeg	
只需提取文件名内容:

代码: 全选

001/2-17-52-51-532748658.gif
001/2-22-29-1-884065533.jpg
001/4JeKe0VC1t.jpg	
002/110.jpg	
110.jpeg	
54d33194N0386d26e.jpg
54d33195N0bebfdfd.jpeg
然后生文件list.md:

代码: 全选

%list

![](http://www.xxx.com/001/2-17-52-51-532748658.gif)
![](http://www.xxx.com/001/2-22-29-1-884065533.jpg)
![](http://www.xxx.com/001/4JeKe0VC1t.jpg)
![](http://www.xxx.com/002/110.jpg)
![](http://www.xxx.com/110.jpeg)
![](http://www.xxx.com/54d33194N0386d26e.jpg)
![](http://www.xxx.com/54d33195N0bebfdfd.jpeg)
上次由 juniz 在 2017-04-21 0:09,总共编辑 1 次。
juniz
帖子: 45
注册时间: 2010-04-07 16:51

Re: sed 正则表达式 下如何提取文本文件的部分内容?

#2

帖子 juniz » 2017-04-21 0:04

.*\.\w{3,4}
谢宝良
帖子: 1983
注册时间: 2010-05-01 21:23

Re: sed 正则表达式 下如何提取文本文件的部分内容?

#3

帖子 谢宝良 » 2017-04-21 19:55

放进excel,然后分裂就可以了。或者使用awk,也很简单。
juniz
帖子: 45
注册时间: 2010-04-07 16:51

Re: sed 正则表达式 下如何提取文本文件的部分内容?

#4

帖子 juniz » 2017-04-21 23:36

折腾了一天,终于完成,使用七牛云做图床方法:
1.本地图片上传至空间.
2.提取外链(生成私有外链接)
3.生成md文件,用pandoc将md转化成html
4.复制网页上的链接
5. 我的博客http://www.synbe.com/

代码: 全选


#!/bin/bash  

./qshell qupload config
#上传图片

./qshell listbucket images ./list/list.txt
#提取空间文件列表

# 获取images空间域名:
#qshell domains images 
#oobin.bkt.clouddn.com

sed  '1d;s/^/http:\/\/oop2in.bkt.clouddn.com\//g;s/[[:space:]][[:space:]]*/\nLOG::/1'  ./list/list.txt > ./list/list001.txt
#list.txt文件:
#删除第一行;行首添加http://...;第1个空格符替换成换行符\n和LOG:: 
#生成图片链接列表

 sed '1~2!d' ./list/list001.txt > ./list/list002.txt
#删除偶数行
 
 echo ------------------列出图片链接-------------------------
 cat ./list/list002.txt
 #列出图片链接
 
./qshell batchsign ./list/list002.txt  > ./list/list003.txt
#批量根据资源的公开外链生成资源的私有外链

 
 sed 's/^/![](/g;s/$/)/g' ./list/list003.txt > ./list/list004.txt
 #行首添加![](;行尾添加)
 
 sed 's/.*/&\n\nURL:\n\n\t&\n\n---\n\n/g;1i  %Qiniu images buckets\n\n---\n\n'  ./list/list004.txt  > ./list/list.md 
 #复制链接到下一行::sed 's/.*/&\n&/' filename
 #所复制的行,换行\n并行首添加tab符\t;第一行前添加标题Qiniu images buckets
 
 
cp ./list/list.md  /home/user/git/bitbucket.org/yourname.bitbucket.io/drafts/posts/md/posts-drafts/imageslist.md
#复制到...

cd /home/user/git/bitbucket.org/yourname.bitbucket.io/sh

sh ./m2drafts.sh
#运行pandoc生成html
附件
Qiniu images buckets0.png
回复