sed从文件中删除URL

day*_*mer 11 sed

我正在尝试编写一个可以从文件中删除URL的sed表达式

http://samgovephotography.blogspot.com/ updated my blog just a little bit ago. Take a chance to check out my latest work. Hope all is well:)   

Meet Former Child Star & Author Melissa Gilbert 6/15/09 at LA's B&N https://hollywoodmomblog.com/?p=2442 Thx to HMB Contributor @kdpartak :)   
Run Code Online (Sandbox Code Playgroud)

但我不明白:

sed 's/[\w \W \s]*http[s]*:\/\/\([\w \W]\)\+[\w \W \s]*/ /g' posFile  
Run Code Online (Sandbox Code Playgroud)

固定!!!!!

处理几乎所有情况,甚至是格式错误的URL

sed 's/[\w \W \s]*http[s]*[a-zA-Z0-9 : \. \/ ; % " \W]*/ /g' positiveTweets | grep "http" | more
Run Code Online (Sandbox Code Playgroud)

Joh*_*web 10

以下内容将移除http://https://直到下一个空格:

sed -e 's!http\(s\)\{0,1\}://[^[:space:]]*!!g' posFile  
 updated my blog just a little bit ago. Take a chance to check out my latest work. Hope all is well:)   

Meet Former Child Star & Author Melissa Gilbert 6/15/09 at LA's B&N  Thx to HMB Contributor @kdpartak :)
Run Code Online (Sandbox Code Playgroud)

编辑:

我应该用过:

sed -e 's!http[s]\?://\S*!!g' posFile
Run Code Online (Sandbox Code Playgroud)

" [s]\?"是写作的一个更可读的方式"可选的s"相比," \(s\)\{0,1\}"

" \S*"任何非空格字符的可读版本,而不是" [^[:space:]]*"

sed在写这个答案(brew install gnu-sedFTW)的时候,我一定是在使用Mac上安装的那个.


有更好的URL正则表达式(例如,那些考虑了HTTP(S)以外的方案),但这给你的工作,给出你给出的例子.为什么复杂的事情?