【问题标题】:display all lines that end in 1 or 0 and 1 in the 3rd from last character on the line [closed]显示所有以 1 或 0 和 1 结尾的行,从该行的最后一个字符开始的第三个字符 [关闭]
【发布时间】:2013-10-01 19:21:39
【问题描述】:

我正在尝试使用 grep 显示所有以 1 或 0 结尾的行,并在该行的最后一个字符的第三个字符中具有 1。

01 m motzart amadeous 25 2nd 94233 02 m 古思里伍迪 23 2nd 94223 03 f 西蒙妮娜 27 2 94112 04 m 列侬约翰 29 2 94221 05 f harris emmylou 20 2nd 94222 06 m marley bob 22 2nd 94112 07 f marley rita 26 2nd 94212 08 f Warwick dione 26 2nd 94222 09 m prine john 35 3rd 94321 10 m 弗兰蒂迈克尔 34 3 号 94112 11 f 黑玛丽 21 2 号 94221 12 m 迪伦鲍勃 37 3rd 94311 13 f baez joan 36 3rd 94311 14 m 理查兹·基思 42 4 94112 15 m jagger mick 41 4th 95115 16 m 麦当劳 Countryjoe 46 4th 94543 17 f 查普曼特雷西 43 4 94211 18 m 斯普林斯坦布鲁斯 45 4 号 94323 19 f 米切尔乔尼 40 4 94444 20 楼沃克爱丽丝 37 3 号 94332 21 f 奥利弗玛丽 47 4 94114 22 m kotzwinkle 威廉 44 4 94433 23 f 凯特威廉 73 7th 94778 24 m heinlein 罗伯特 74 7 94765 25 m asimov isaac 75 7th 94777 26 m 驼鹿 Bullwinkle 16 1st 94111 27 m 松鼠火箭J 17 1st 94122 28 f fenwich nell 13 1st 94221 29 m peobody mr 18 1st 94222 30 m longlastname longfirstname 11 1st 94313 31 m 离开 t 22 2nd 94223 32 m hanh thichNhat 26 2nd 94115 33 m 乔姆斯基诺姆 34 3 号 94116 34 m 莫里森诺曼 71 7 94771 35 安东尼苏珊 B 48 4 94321 36 m kropotkin 彼得 49 4 94115 37 m gandhi mohatmas 53 5th 95123 38 英尺 tubman harriet 50 5th 95555 39 m 马丁路德国王 52 5 号 95112 40 m 查韦斯·塞萨尔 57 5th 95112 41 m 道格拉斯弗雷德里克 66 6 94666 42 f 高盛艾玛 64 6 号 94611 43 f 曼德拉纳尔逊 60 6th 96543 44 f 公园罗莎 72 7 94777 45 m 罗素伯特兰 55 5 94113 46 f lovelace ada 56 5th 95123 47 m 达尔文查尔斯 59 5 95123 48 m 伽利略伽利略 58 5th 95113 49 米爱因斯坦阿尔伯特 54 5 号 94113

这是文件

【问题讨论】:

  • “我正在尝试显示所有以 1 或 0 结尾的行” - 显然,you 并没有尝试显示这些行。你试图欺骗不知情的人为你做这项工作。
  • 不要破坏您的帖子。

标签: linux unix grep


【解决方案1】:

应该这样做:

grep '1.[10]$' filename

我创建了以下测试输入文件:

198273789120 123981298371 239817239111 123981239871 192873698127

然后运行上面的grep 命令,得到这个输出:

198273789120 239817239111

打印的两行都以 0 或 1 结尾,并且将 1 作为该行的倒数第三个字符。

【讨论】:

  • 当我这样做时没有显示。只是得到一个空行
  • 您可以粘贴您希望显示的行吗?
  • 我觉得我的点太多了。试试我的更新回复。
  • 对不起,我想错了 - 我需要搜索文件中的最后一个字符/列,而不是最后一个字段的第三个。对不起
  • 不要编辑我的答案,编辑你的问题。
【解决方案2】:

你可以试试这个

egrep -e '1.(1|0)$' your_file

它返回任何以 1 或 1 结尾的行,并且在倒数第三个位置有 1。

【讨论】:

  • 我只能使用 grep。没有白鹭
  • 只是好奇,为什么(1|0) 超过[10]
  • 我认为它们是一样的。
  • @JohnSmith 字符类和更改不一样,尽管在这种情况下行为是相同的。字符类是基本正则表达式的一部分,而更改是扩展正则表达式的一部分。
猜你喜欢
  • 2019-02-22
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
  • 2016-12-21
相关资源
最近更新 更多