почему HTTP-прокси нельзя использовать?

Повторяя это снова и пытаясь использовать ничего, кроме оболочки Bash, другое однострочное решение:

while read url; do url="${url##*/}" && echo "${url%%\'*}"; done < file.in > file.out

Где file.in содержит «грязный» список url ​​и file.out будет содержать «чистый» список URL-адресов. Внешних зависимостей нет, и нет необходимости создавать новые процессы или подоболочки. Далее следует оригинальное объяснение и более гибкий сценарий. Ниже приведено хорошее описание метода, см. Пример 10-10. Это переменная подстановки на основе шаблонов в Bash.

Расширение идеи:

src="define('URL', 'http://url.com');"
src="${src##*/}"        # remove the longest string before and including /
echo "${src%%\'*}"      # remove the longest string after and including '

Результат:

url.com

Не нужно вызывать какие-либо внешние программы , Кроме того, следующий сценарий bash, get_urls.sh, позволяет вам читать файл напрямую или из stdin:

#!/usr/bin/env bash

# usage: 
#     ./get_urls.sh 'file.in'
#     grep 'URL' 'file.in' | ./get_urls.sh

# assumptions: 
#     there is not more than one url per line of text.
#     the url of interest is a simple one.

# begin get_urls.sh

# get_url 'string'
function get_url(){
  local src="$1"
  src="${src##*/}"        # remove the longest string before and including /
  echo "${src%%\'*}"      # remove the longest string after and including '
}

# read each line.
while read line
do
  echo "$(get_url "$line")"
done < "${1:-/proc/${$}/fd/0}"

# end get_urls.sh
1
задан 27 July 2016 в 10:05

0 ответов

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

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