На самом деле это не ответ, а просто примечание о том, что необходимо учитывать, чтобы решение работало в общем случае.
#! /bin/sh
echo \\
echo a#\
b
echo 'foo\
bar'
cat << EOF
this\
is joined
this 'as\
well'
$(ls \
-l)
EOF
cat << E\OF
this is\
not joined
EOF
echo "$(ls \
-l)"
echo `ls \\
-l`
Насколько я понимаю, цель вопроса заключается в том, что он должен быть преобразован в:
#! /bin/sh
echo \\
echo a#b
echo 'foo\
bar'
cat << EOF
thisis joined
this 'aswell'
$(ls -l)
EOF
cat << E\OF
this is\
not joined
EOF
echo "$(ls -l)"
echo `ls -l`
Оболочка выполняет обычную интерпретацию символов, особенно ?
как подстановочный знак (, который здесь не имеет значения )и &
как "поместить в фоновый режим". Вы должны были заметить последнее, потому что ответ оболочки отличается от прямой команды.
Значит нужно цитировать:
wget 'http://abc/geo/download/?acc=GSE48191&format=file'
wget --content-disposition 'https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file'
Загружаемый файл представляет собой tar
архив (двоичный файл ), предоставленный по динамической ссылке с веб-сервера. wget
обычно сохраняет файл, используя часть URL-адреса, который вы используете, но в этом случае это просто конечная точка REST API (или что-то подобное ), поэтому имя будет неудобным для работы (это все еще будет допустимое имя, и содержимое файла будет таким же ).
Однако в этом случае сервер предоставляет заголовок Content Disposition, содержащий фактическое имя файла, которое wget
можно использовать, если вы используете опцию --content-disposition
. В моем руководстве для wget
эта опция помечена как «экспериментальная».
Вам также необходимо заключить URL-адрес в кавычки, чтобы оболочка не интерпретировала содержащиеся в нем символы &
и ?
.
Эквивалентная вещь с использованиемcurl
:
curl -J -O 'https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file'
Или, используя эквивалентные длинные опции:
curl --remote-header-name --remote-name 'https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE48191&format=file'
После того, как вы загрузили файл, вам необходимо его распаковать:
tar -xvf GSE48191_RAW.tar
Из-за способа создания этого конкретного архива файлы архива будут распакованы в текущий каталог (, поэтому создание нового каталога, перемещение туда архива и его распаковка могут быть хорошая идея ). Файлы в этом архиве представляют собойgzip
-сжатые CEL
файлы.