sed及awk提取影片下载地址

简介:

文件内容为

[root@extmail changename]# cat test
第01集 http://down.hjzlg.com/bthy/prc001ts.torrent

第02集 http://down.hjzlg.com/bthy/prc003ts.torrent

第03集 http://down.hjzlg.com/bthy/prc004ts.torrent


需求如下:


去除行首的汉字部分,保留下载地址部分。


方案一: 通过awk实现


[root@extmail changename]# cat test | awk '{print $2}'
http://down.hjzlg.com/bthy/prc001ts.torrent

http://down.hjzlg.com/bthy/prc003ts.torrent

http://down.hjzlg.com/bthy/prc004ts.torrent


若想把空行也替换掉,则需加入sed管道,如下

[root@extmail changename]# cat test | awk '{print $2}' | sed /^$/d
http://down.hjzlg.com/bthy/prc001ts.torrent
http://down.hjzlg.com/bthy/prc003ts.torrent
http://down.hjzlg.com/bthy/prc004ts.torrent


其中awk '{print $2}'表示打印出每行中的第二个元素,sed /^$/d表示删除空行。


方案二:通过awk里的substr函数


[root@extmail changename]# cat test | awk '{print substr($0,length($1)+2)}' | sed /^$/d
http://down.hjzlg.com/bthy/prc001ts.torrent
http://down.hjzlg.com/bthy/prc003ts.torrent
http://down.hjzlg.com/bthy/prc004ts.torrent


awk '{print substr($0,length($1)+2)}'表示返回从第[length($1)+2]个字符开始的所有字符

sed /^$/d 表示删除空行

附注: substr(string,position,len) 返回string的一个以position开始len个字符的子串


方案三:通过awk结合正则实现


[root@extmail changename]# 

cat test|awk '{print gensub(/.*(http.*torrent).*/,"\\1","g",$0)}' |sed /^$/d

http://down.hjzlg.com/bthy/prc001ts.torrent
http://down.hjzlg.com/bthy/prc003ts.torrent
http://down.hjzlg.com/bthy/prc004ts.torrent


awk '{print gensub(/.*(http.*torrent).*/,"\\1","g",$0)}'表示匹配以http开头torrent结尾的字符串,g代表替换全部,$0表示当前行。  执行后即把当前行以http开头torrent结尾的字符串提取出来。

gensub函数以“,”作为分割符,共分为四部分。




本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1637242,如需转载请自行联系原作者

相关文章
|
存储 移动开发 Unix
linux中最为常用的三大文本(grep,sed,awk)处理工具
linux中最为常用的三大文本(grep,sed,awk)处理工具
|
Linux C语言 计算机视觉
linux中最为常用的三大文本(grep,sed,awk)处理工具(下)
linux中最为常用的三大文本(grep,sed,awk)处理工具
|
C语言
grep有时抓不到文本怎么办?
grep有时抓不到文本怎么办?
75 0
|
Linux Ubuntu
Linux基础命令---文本显示tac
tac     将指定文件中的行,按照反序方式显示。     此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法     tac  [选项]  file2、选项列表     --version          显示命令版本信息...
1321 0
|
Linux Perl
linux高级命令行文本处理cut,sed,awk
cut   sort排序 wc  sed linux sed的详细指令 -i会删除 删除 替换 AWK awk命令详解   ...
1779 0
|
Perl Linux 机器学习/深度学习

热门文章

最新文章