编辑命令行参数以创建新变量

编辑命令行参数以创建新变量

我有一个名为的 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

相关内容