Редактирование аргумента командной строки для создания новой переменной

У меня есть сценарий 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?

2
задан 7 December 2012 в 08:42

2 ответа

Вы можете сделать это в awk следующим образом:

$ name=$(echo $1 | awk -F[/.] '{print $(NF-1)}')
$ echo $name
0,2817,2412941,00

Используя / и . в качестве разделителей, материал, который вы хотите, будет присутствовать в последнем, но одном поле, доступ к которому используя NF-1

0
ответ дан 7 December 2012 в 08:42

Вы можете использовать команду basename:

basename http://www.pcmag.com/article2/0,2817,2412919,00.asp ".asp"

, которая даст вам:

0,2817,2412919,00
0
ответ дан 7 December 2012 в 08:42

Другие вопросы по тегам:

Похожие вопросы: