我有以下链接列表:
http://site1.com/lalala.html
http://site2.com/lalala/
我需要删除最后一行中的所有文本/如何使用awk或sed执行此操作?或者可能是一些perl或python脚本?谢谢你的帮助!
答案 0 :(得分:2)
这可行:
$ echo http://site1.com/lalala/ | sed -e 's;\(.*/\).*;\1;'
http://site1.com/lalala/
$ echo http://site1.com/lalala/foo.html | sed -e 's;\(.*/\).*;\1;'
http://site1.com/lalala/
答案 1 :(得分:0)
在PHP中,您在字符串上使用dirname()
。 PHP是可能的脚本语言之一吗?
修改强>
Perl和Python都有dirname()
,对实现不太确定。遗憾
答案 2 :(得分:0)
除了使用的语言之外,我会将所有行(使用\ n作为分隔符)拆分为数组,然后我会搜索每个元素的lastIndexOf“/”,然后我将删除我不喜欢的部分需要使用常规的String方法。当然,您也可以使用RegExp做一些有趣的事情。
答案 3 :(得分:0)
您可以使用
sed -e 's/\(.*\)\/[^\/]*/\1/g'
示例:
bash-$ echo "http://site1.com/lalala.html" |sed -e 's/\(.*\)\/[^\/]*/\1/g'
http://site1.com
bash-$ echo "http://site2.com/lalala/" |sed -e 's/\(.*\)\/[^\/]*/\1/g'
http://site2.com/lalala
答案 4 :(得分:0)
使用awk你可以使用:
awk 'BEGIN { FS="/"; OFS="/"; } { $NF = ""; print; }'
示例:
$ echo http://site1.com/lala/la.txt | awk 'BEGIN { FS="/"; OFS="/"; } { $NF = ""; print; }'
http://site1.com/lala/
$ echo http://site1.com/lala/ | awk 'BEGIN { FS="/"; OFS="/"; } { $NF = ""; print; }'
http://site1.com/lala/