我有一个名为的 bash 脚本test.sh
,它使用命令行参数:
lynx -dump $1 > $name".txt"
但我需要通过参数中的特定关键字从参数中创建名称。
例如:
http://www.pcmag.com/article2/0,2817,2412941,00.asp
http://www.pcmag.com/article2/0,2817,2412919,00.asp
两者都是两篇独立的文章,但区别仅在于这 12 个字符。如何从 URL 为这 12 个字符创建变量?这样当我在终端中运行 test.sh 时:
./test.sh http://www.pcmag.com/article2/0,2817,2412941,00.asp
有一个文本文件保存为0,2817,2412941,00
?
答案1
您可以在 awk 中这样做:
$ name=$(echo $1 | awk -F[/.] '{print $(NF-1)}')
$ echo $name
0,2817,2412941,00
通过使用/
和.
作为分隔符,您想要的内容将出现在可以使用访问的最后一个字段中NF-1
答案2
您可以使用以下basename
命令:
basename http://www.pcmag.com/article2/0,2817,2412919,00.asp ".asp"
这将给你:
0,2817,2412919,00