Нет, это не поддерживается wget, если только вы уже не выполнили синхронизацию один раз, через wget или нет (, в этом случае см.--timestamp
).
Вот некоторые обходные пути, которые вы можете попробовать:
wget
. Это кажется хорошим кандидатом для специального сценария. Вы все еще можете использовать wget для файла за раз. Вы также можете проверить wpull, который я не использовал, но я понимаю, что он похож на wget со сценариями, чтобы определить, следует ли загружать страницы. Используя awk
, вы можете иметь все в отдельном определяющем разделителе как_
VAR1=$(awk -F'_' '{print $1}' infile.txt)
Вы можете напечатать нужные поля на основе их индекса выше вместо $1
, который указывает на первое поле.
Или вы можете использовать bash
и читать как массив.
IFS='_' read -r -a array <<< "$myString"
затем просто прочитайте с индивидуальным порядковым номером:
echo "${array[2]}"
Или даже просто вы можете использовать расширение параметра bash:
VAR1="${myString%_*}" # will gives you 'a_link_list'
VAR2="${myString##*_}" # will gives you 'java'
VAR3="${VAR1%_*}" # will gives you 'a_link'
Сsed
:
var1=$(sed 's/_[^_]*$//' file)
var2=$(sed 's/.*_//' file)
Обратите внимание, что sed
очень жадный, поэтому во втором случае glob *
поглощает все символы, включая предыдущие символы подчеркивания _
.
Выход:
$ echo "$var1"
a_link_list
$ echo "$var2"
java
Расширения параметров оболочки могут сделать это:
$ v="a_link_list_java"
$ printf "%s\n" "${v%_*}" "${v##*_}"
a_link_list
java
Обратите внимание, что если шаблоны в расширении не совпадают, ничего не удаляется. Таким образом, значение без подчеркивания не изменится при обоих преобразованиях :
.$ v=foo
$ printf "%s\n" "${v%_*}" "${v##*_}"
foo
foo