我在 .txt 文件中有一个以文件名结尾的 URL 列表 - 我需要提取该文件名。但是,反斜杠的数量和每个反斜杠之前的字符串因 URL 而异,例如:
https://www.something.com/something/somethingelse/file.zip
https://www.something.com/something/somethingelse/somethingnew/file2.txt
Run Code Online (Sandbox Code Playgroud)
在我的 URL 中,somethingelse和somethingnew都是常量(由于数据隐私协议无法共享实际 URL),但将来可能会更改。以下代码适用于第一个网址,但不适用于第二个网址:
sed 's/^.*\/somethingelse\///g' in_file.txt > out_file.txt
Run Code Online (Sandbox Code Playgroud)
有没有一种sed模式可以用来匹配最后一个反斜杠之后的所有内容 - 因此不需要字符串常量?
您可以使用basenamebash 中可用的命令,例如:
$ basename "https://www.something.com/something/somethingelse/file.zip"
$ file.zip
Run Code Online (Sandbox Code Playgroud)
或者,如果您真的想使用 sed:
sed 's#.*/##' in_file.txt > out_file.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
756 次 |
| 最近记录: |