如果行首是 http:// 且行尾是 com,则在行尾附加 *

如果行首是 http:// 且行尾是 com,则在行尾附加 *

我有一个文件。

http://example.com http://example1.com

我如何使用 sed 实现,如果一行以 http:// 开头并以 com 结尾,则在行尾附加 *

答案1

尝试:

sed '/^http:\/\/.*com$/s/$/*/'

答案2

假如说:

url='http://example.com'

sed无需使用即可实现常用表达在 bash 中。

[[ $url =~ ^http: ]] && [[ $url =~ com$ ]] && url="$url*"

这意味着:如果 URL 以 开头http:并以 结尾com$url则现在与以前一样以*at then 结尾。

但是,如果您想使用grep,您可以使用:

[[ -n `echo 'http://example.com' | grep ^http | grep com$` ]] && url="$url*"

-n正在测试 grep 操作的结果是否为空,并且只有在这种情况下才将其附加*到 url。

相关内容