Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 以“quot;结尾的终端extrac单词;。abc";从文件_Bash_File_Text_Terminal_Osx Mavericks - Fatal编程技术网

Bash 以“quot;结尾的终端extrac单词;。abc";从文件

Bash 以“quot;结尾的终端extrac单词;。abc";从文件,bash,file,text,terminal,osx-mavericks,Bash,File,Text,Terminal,Osx Mavericks,我想通过终端执行以下操作。我有一个文件,有很多行,每行包含一个完整的句子。有些行是空的。我想读取该文件并提取以.abc结尾的所有单词。我想通过终点站来做这件事。我该怎么做呢?grep非常有用 $ cat input .abc .abdadf assadf.abc adsfas.abcadf asdf.abc $ grep -o '\b[^\.]*\.abc\b' input assadf.abc asdf.abc 它的作用 -o在与给定正则表达式匹配的行中打印字符串 \b[^\.]*\

我想通过终端执行以下操作。我有一个文件,有很多行,每行包含一个完整的句子。有些行是空的。我想读取该文件并提取以
.abc
结尾的所有单词。我想通过终点站来做这件事。我该怎么做呢?

grep
非常有用

$ cat input

.abc
.abdadf
assadf.abc
adsfas.abcadf
asdf.abc

$ grep -o '\b[^\.]*\.abc\b' input

assadf.abc
asdf.abc
它的作用

  • -o
    在与给定正则表达式匹配的行中打印字符串

  • \b[^\.]*\.abc\b
    regex匹配以
    .abc

    • \b
      单词边界

    • [^\.]

    • *
      匹配零个或多个

    • \.abc\b
      匹配
      .abc
      后跟单词边界
      \b

注意

如果单词可以包含多个
,则将正则表达式修改为

\b.\.abc\b


其中
*
将匹配任何内容,包括

grep
可能非常有用

$ cat input

.abc
.abdadf
assadf.abc
adsfas.abcadf
asdf.abc

$ grep -o '\b[^\.]*\.abc\b' input

assadf.abc
asdf.abc
它的作用

  • -o
    在与给定正则表达式匹配的行中打印字符串

  • \b[^\.]*\.abc\b
    regex匹配以
    .abc

    • \b
      单词边界

    • [^\.]

    • *
      匹配零个或多个

    • \.abc\b
      匹配
      .abc
      后跟单词边界
      \b

注意

如果单词可以包含多个
,则将正则表达式修改为

\b.\.abc\b


其中,
*
将匹配任何内容,包括

,以查找以
.abc
结尾的所有单词

grep -oP '\S*\.abc(?=\s|$)' file
  • \S*
    零个或多个非空格字符
  • (?=\s |$)
    正向先行断言匹配后的字符必须是空格或线锚的结尾

查找以
.abc
结尾的所有单词

grep -oP '\S*\.abc(?=\s|$)' file
  • \S*
    零个或多个非空格字符
  • (?=\s |$)
    正向先行断言匹配后的字符必须是空格或线锚的结尾

在各种可能性中尝试awk

awk '/\.abc$/' file

在各种其他可能性中尝试
awk

awk '/\.abc$/' file

您也可以使用sed命令

sed -n '/\.abc$/ p' file

您也可以使用sed命令

sed -n '/\.abc$/ p' file

谢谢你的帮助+谢谢你的帮助+谢谢你的帮助+谢谢你的帮助+谢谢你的帮助+谢谢你的帮助+1.