我试图想出一个脚本来格式化 apache 的转发,我需要做的是获取一个 url,剥离域,然后在行的末尾附加一个“/”,如果已经没有,现在我想出的脚本是这样的:
#!/bin/bash
sed 's/http:\/\/www.mydomain.co.uk//g' address > address1
sed -e 's/$/\//' address1 > address2
Run Code Online (Sandbox Code Playgroud)
现在这个脚本将去掉开头的“ http://www.mydomain.co.uk ”并在结尾添加一个“/”,但我已经在那里有了一些网址。我怎样才能让 sed 只添加“/”(如果它还没有)?
在行尾匹配除斜杠以外的字符,并替换为匹配 ( &) 加斜杠:
sed 's![^/]$!&/!'
Run Code Online (Sandbox Code Playgroud)
为了让事情更容易一些,我将分隔符从 更改/为!,这样查找/替换部分中的斜线就不需要转义了。