删除我不想要的文字

林诺布

我的桌面上有一个很大的html文件,看起来像

src="http://images.alaablubnan.com/images/Balls/20.jpg"
alt="http://images.alaablubnan.com/images/Balls/20.jpg"/></a></td><td><a
href="http://images.alaablubnan.com/images/Balls/32.jpg"
target="_blank"><img
src="http://images.alaablubnan.com/images/Balls/32.jpg"
alt="http://images.alaablubnan.com/images/Balls/32.jpg"/></a></td><td><a
href="http://images.alaablubnan.com/images/Balls/30.jpg"
target="_blank"><img
src="http://images.alaablubnan.com/images/Balls/30.jpg"
alt="http://images.alaablubnan.com/images/Balls/30.jpg"/></a></td></tr><tr><td><table><tr><td>webpage/url</td><td>http://www.playlebanon.com/webservices/website/lotto/PopUps/HistoryDetail.aspx?t=1405536730503&FromDraw=1&ToDraw=1213&Draw=0</td></tr></table></td><td>2</td><td>complete
lotto results</td><td>complete lotto results</td><td>2</td><td><a
href="http://www.playlebanon.com/webservices/website/lotto/PopUps/HistoryDetail.

如果可能,我要:

  • 取得所有.jpg档案,移除所有html程式码(分别是1.jpg,2.jpg ...至42.jpg)
  • 我想删除.jpg扩展名
  • 我希望每行数字只有7个数字,然后插入新行
芒登

这实际上并不是一项特别好的工作,sed但是可以这样做:

sed -nr 's#.*/([^"]+).jpg.*#\1#p' file 

上面将为您提供数字列表,每行一个:

20
20
32
32
32
30
30
30

现在,实际上可以将所有这些都使用在同一行上,每行使用7个数字,sed但这确实不值得付出努力。只需使用标准的* nix工具即可:

$ echo $(sed -nr 's#.*/([^"]+).jpg.*#\1#p' file | tr $'\n' ' ') | fold -sw 21
20 20 32 32 32 30 30 
30

或者,如果您要删除重复项,请执行以下操作:

echo $(sed -nr 's#.*/([^"]+).jpg.*#\1#p' file | sort -u | tr $'\n' ' ')
20 30 32

解释

sed命令使用一些技巧:

  • -n:默认情况下不打印任何行。
  • -r:启用扩展的正则表达式,这使我们( )可以捕获组而无需转义括号和+“一个或多个”。
  • s#from#to#::sed和其他类似工具中的标准替换运算符是时s/from/to/,您可以使用非标准定界符,以便可以将其包括/在模式中。在这种情况下,我正在使用,#但是您也可以使用其他类似的东西s|from|to|
  • s#.*/([^"]+).jpg.*#\1#p:这将匹配从行首到a的所有内容/,然后捕获最长的非"字符段直到.jpg这是文件名减去扩展名。文件.*名将在括号中捕获,并且整行(由于两边都用)将被捕获的模式(\1代替所述p在端部是指,将打印其中取代是成功的行。

不过,就我个人而言,我首先要做的就是所有这些perl

$ perl -e '@k=grep(s/.*\/([^"]+).jpg.*/$1/s,<>); print "@k[0..6]\n@k[7..$#k]\n"' file 
20 20 32 32 32 30 30
30

或者,对于较大的文件:

$ perl -e '@k=grep(s/.*\/([^"]+).jpg.*/$1/s,<>); for($i=0;$i<=$#k;$i+=7){print "@k[$i..$i+7]\n"}' file 
20 20 32 32 32 30 30 30
30       

grep甚至:

$ echo $(grep -oP '[^/]+(?=.jpg)' file | tr $'\n' ' ' ) | fold -w 21
20 20 32 32 32 30 30 
30

或者,窃取@Olli的聪明xargs主意:

$ grep -oP '[^/]+(?=.jpg)' file |  xargs -n7 echo
20 20 32 32 32 30 30
30

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R:Rvest-隐藏了我不想要的文字

来自分类Dev

如何删除不想要的字符/文本 - PHP

来自分类Dev

IntelliJ IDEA - 创建或重新创建我不想要或已经删除的目录

来自分类Dev

Apache CXF我不想要基元

来自分类Dev

Django缓存查询(我不想要)

来自分类Dev

我不想要的EF Core加载关系

来自分类Dev

Artifactory正在缓存我不想要的工件

来自分类Dev

Git忽略了我不想要的文件

来自分类Dev

我不想要固定的导航栏

来自分类Dev

休眠:我不想删除孩子

来自分类Dev

数组内容显示为 [object HTMLInputElement],这是我不想要的

来自分类Dev

为什么 Jquery 在我不想要的时候呈现为 HTMLString?

来自分类Dev

我不想要孙实体上的父实体或外键

来自分类Dev

& 总是使用 HtmlOutput 或 HtmlTemplate 解码(我不想要)

来自分类Dev

Strchr删除我想要的部分

来自分类Dev

我想要透明的UIView,但不想要在其上添加的元素

来自分类Dev

我想要一个命令来删除所有用户的所有临时文件,但我不想删除他们在chrome和firefox上的书签

来自分类Dev

我的CSS样式影响了其他我不想要的标签

来自分类Dev

快速,准确,可靠的方法从csv文件中删除不想要的值

来自分类Dev

Makefile clean不会删除我想要的文件

来自分类Dev

角度的ui路由器似乎正在缓存解析。当我不想要它时

来自分类Dev

扫描Java中txt文件中的文本,然后扔掉我不想要的部分

来自分类Dev

Application.Undo调用Worksheet_Change-我不想要这个

来自分类Dev

Android Listview-GetView将更改应用于我不想要的项目

来自分类Dev

PHP:Foreach循环导致输出有一个我不想要的额外符号

来自分类Dev

jQuery启动另一个功能,但我不想要它

来自分类Dev

为什么不想要的数据被推送到我的数组中?

来自分类Dev

Application.Undo调用Worksheet_Change-我不想要这个

来自分类Dev

当我不想要fgets拆分输入字符串时

Related 相关文章

  1. 1

    R:Rvest-隐藏了我不想要的文字

  2. 2

    如何删除不想要的字符/文本 - PHP

  3. 3

    IntelliJ IDEA - 创建或重新创建我不想要或已经删除的目录

  4. 4

    Apache CXF我不想要基元

  5. 5

    Django缓存查询(我不想要)

  6. 6

    我不想要的EF Core加载关系

  7. 7

    Artifactory正在缓存我不想要的工件

  8. 8

    Git忽略了我不想要的文件

  9. 9

    我不想要固定的导航栏

  10. 10

    休眠:我不想删除孩子

  11. 11

    数组内容显示为 [object HTMLInputElement],这是我不想要的

  12. 12

    为什么 Jquery 在我不想要的时候呈现为 HTMLString?

  13. 13

    我不想要孙实体上的父实体或外键

  14. 14

    & 总是使用 HtmlOutput 或 HtmlTemplate 解码(我不想要)

  15. 15

    Strchr删除我想要的部分

  16. 16

    我想要透明的UIView,但不想要在其上添加的元素

  17. 17

    我想要一个命令来删除所有用户的所有临时文件,但我不想删除他们在chrome和firefox上的书签

  18. 18

    我的CSS样式影响了其他我不想要的标签

  19. 19

    快速,准确,可靠的方法从csv文件中删除不想要的值

  20. 20

    Makefile clean不会删除我想要的文件

  21. 21

    角度的ui路由器似乎正在缓存解析。当我不想要它时

  22. 22

    扫描Java中txt文件中的文本,然后扔掉我不想要的部分

  23. 23

    Application.Undo调用Worksheet_Change-我不想要这个

  24. 24

    Android Listview-GetView将更改应用于我不想要的项目

  25. 25

    PHP:Foreach循环导致输出有一个我不想要的额外符号

  26. 26

    jQuery启动另一个功能,但我不想要它

  27. 27

    为什么不想要的数据被推送到我的数组中?

  28. 28

    Application.Undo调用Worksheet_Change-我不想要这个

  29. 29

    当我不想要fgets拆分输入字符串时

热门标签

归档