标签: regular-expression

用逗号替换文本文件中的所有空格

我需要用逗号替换文本中的所有空格。我目前正在使用这一行,但它不起作用:我得到一个与原始文件完全相同的文本文件作为输出:

sed 's/[:blank:]+/,/g' orig.txt > modified.txt
Run Code Online (Sandbox Code Playgroud)

谢谢

sed text-processing regular-expression

14
推荐指数
2
解决办法
9万
查看次数

如何从半随机字符串中提取/解析完整的 URL?

我想让 bash 从一个随机的短字符串中解析/提取一个完整的 URL(并且只有 url)。

例子:

bob, the address is http://www.google.com
Run Code Online (Sandbox Code Playgroud)

或者

https://foo.com/category/example.html is up
Run Code Online (Sandbox Code Playgroud)

或者

Error 123 occurred at http://bit.ly/~1223456677878
Run Code Online (Sandbox Code Playgroud)

或者

Stats are up: https://foo1234.net/report.jpg
Run Code Online (Sandbox Code Playgroud)

我尝试使用,cat foo_output | egrep -o "https?://[\w'-\.]*\s"但这似乎不起作用。

scripting bash regular-expression

14
推荐指数
2
解决办法
3万
查看次数

Yum 正则表达式或通配符搜索?

Fedora文档说:

5.2. 高级搜索

如果您不知道包的名称,请使用搜索或提供选项。或者,在任何 yum 搜索选项中使用通配符或正则表达式来扩大搜索条件。

好吧,起初我认为这完全是错误的或过时的,因为没有已知的正则表达式语法适用于yum search,但后来我发现了这一点yum search [cl-*]例如。但它做了一些超凡脱俗的事情。它查找名称或描述中既没有“c”也没有“l”字母的事物。(我想要的是找到所有包,其名称将由正则cl-.*表达式匹配。

我还发现很少有人建议将 yum 结果通过管道传输到grep,这当然解决了问题。但是,原则上,我想找出方括号中的内容做了什么。如果yum实际上可以通过正则表达式搜索怎么办?

yum regular-expression

14
推荐指数
2
解决办法
3万
查看次数

如何将页眉和/或页脚添加到 sed 或 awk 流?

我有一堆输出通过 sed 和 awk。

如何使用 START 为输出添加前缀并使用 END 为答案添加后缀?

例如,如果我有

All this code
on all these lines
and all these
Run Code Online (Sandbox Code Playgroud)

我怎么能得到:

START
All this code
on all these lines
and all these
END
Run Code Online (Sandbox Code Playgroud)

?

我的尝试是:

awk '{print "START";print;print "END"}'
Run Code Online (Sandbox Code Playgroud)

但我得到了

...
START
    All this code
END
START
    on all these lines
END
START
    and all these
END
Run Code Online (Sandbox Code Playgroud)

sed awk text-processing regular-expression

14
推荐指数
3
解决办法
3万
查看次数

sed s/REGEXP/REPLACEMENT/g的执行周期

为什么echo ,,, |sed s':\(,\)\(,\):\1*\2:'gyield " ,*,," 而不是 " ,*,*,"?换句话说:为什么尽管有“g”标志,sed 不会*在一对逗号之间插入 ' '?

sed regular-expression

14
推荐指数
2
解决办法
1000
查看次数

bash 使用什么正则表达式引擎类型?

我使用RegEx Buddy来设计和调试我的正则表达式。RegEx Buddy 允许我在许多不同的正则表达式引擎类型(.NET、Java、Perl、GNU BRE、GNU ERE、POSIX、BRE、POSIX ERE 等)之间进行选择。

bash 使用什么正则表达式引擎(例如 inifcasestatements)?我正在运行 Centos 5.5 32 位和 bash 3.2.25(1):

[kevin@mon01 scratch]$ bash --version
GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)

我猜它会是 GNU BRE 还是 GNU ERE?

bash regular-expression

13
推荐指数
1
解决办法
7862
查看次数

13
推荐指数
1
解决办法
2万
查看次数

如何使用 bash 选择不同目录中的特定文件?

我想列出(或删除,或执行其他操作)某个目录中的某些文件,如下所示:

$ ls /opt/somedir/
aa  bb  cc  aa.txt  bb.txt  cc.txt
$ ls /opt/somedir/(aa|bb|cc)  ## pseudo-bash :p
aa  bb  cc
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点(不先 cd 到目录)?

bash directory regular-expression wildcards

13
推荐指数
1
解决办法
7900
查看次数

在命令行上转义正则表达式反斜杠所需的反斜杠数

我最近在命令行上遇到了一些正则表达式的问题,发现为了匹配反斜杠,可以使用不同数量的字符。这个数字取决于用于正则表达式的引用(无、单引号、双引号)。请参阅以下 bash 会话以了解我的意思:

echo "#ab\\cd" > file
grep -E ab\cd file
grep -E ab\\cd file
grep -E ab\\\cd file
grep -E ab\\\\cd file
#ab\cd
grep -E ab\\\\\cd file
#ab\cd
grep -E ab\\\\\\cd file
#ab\cd
grep -E ab\\\\\\\cd file
#ab\cd
grep -E ab\\\\\\\\cd file
grep -E "ab\cd" file
grep -E "ab\\cd" file
grep -E "ab\\\cd" file
#ab\cd
grep -E "ab\\\\cd" file
#ab\cd
grep -E "ab\\\\\cd" file
#ab\cd
grep -E "ab\\\\\\cd" file
#ab\cd
grep -E "ab\\\\\\\cd" file
grep -E 'ab\cd' file
grep …
Run Code Online (Sandbox Code Playgroud)

command-line shell quoting regular-expression

13
推荐指数
2
解决办法
1万
查看次数

递归重命名匹配正则表达式的子目录

我有一个媒体服务器,其中有一个名为Series. ( /media/Expansion2/Series/)

在里面,我有(惊喜!)电视剧。这些只是节目名称,例如,/media/Expansion2/Series/The Big Bang Theory/

在每个节目的文件夹内(这就是问题所在)我有季节文件夹。我目前混合了以下两种约定(可能还有更多约定):

  1. /media/Expansion2/Series/The Big Bang Theory/The Big Bang Theory Season 1
  2. /media/Expansion2/Series/The Big Bang Theory/Season 2

最后,我想将所有文件夹重命名为Season #.

作为正则表达式,我可能会说类似的话 s/.*(Season \d)/$1

仅适用于文件夹,不适用于文件。我可能还应该提到这是用于大约 50 多个显示子文件夹,因此它需要从/media/Expansion2/Series/级别开始并查看每个系列:)

shell directory regular-expression rename

13
推荐指数
1
解决办法
1万
查看次数