Это в основном из любопытства, я пытаюсь вести себя так же, как:
echo -e "test1:test2:test3"| sed 's/:/\n/g' | grep 1
в одной команде sed
.
Я уже пробовал
echo -e "test1:test2:test3"| sed -e "s/:/\n/g" -n "/1/p"
Но я получаю следующую ошибку:
sed: can't read /1/p: No such file or directory
Есть идеи, как это исправить и объединить различные типы команд в один sed
вызов?
Конечно, этослишком упрощен по сравнению с реальным сценарием использования, и я знаю, что могу обойтись с помощью нескольких вызовов, опять же, это просто из любопытства.
РЕДАКТИРОВАТЬ: меня в основном интересует инструмент sed
, я ужезнать, как это сделать, используя другие инструменты или даже их комбинации.
РЕДАКТИРОВАТЬ2: Вот более реалистичный сценарий, более близкий к тому, что я пытаюсь достичь:
arch=linux64
base=https://chromedriver.storage.googleapis.com
split="<Contents>"
curl $base \
| sed -e 's/<Contents>/<Contents>\n/g' \
| grep $arch \
| sed -e 's/^<Key>\(.*\)\/chromedriver.*/\1/' \
| sort -V > out
Что я хотел быупрощение - это линия скручивания, превращающая ее в нечто вроде:
curl $base \
| sed 's/<Contents>/<Contents>\n/g' -n '/1/p' -e 's/^<Key>\(.*\)\/chromedriver.*/\1/' \
| sort -V > out