Из командной консоли curl выведите grep для некоторых файлов шаблонов и скопируйте их в каталог - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть требование, где мне нужно «grep для некоторых файлов шаблонов и скопировать их в каталог из вывода командной консоли curl».

Мне нужно все это в сценарии оболочки.

Пример:

1)$ curl -sk -u username:password https://localhost:port/appname/config/ >/tmp/appname.txt
2)$ `egrep '\.truststore$|\.keystore$|\.jks$|\.pem$' /tmp/appname.txt | grep -v pass | sort`

Вывод:

root4.file=/abc/xyz/app/etc/pvt/old.pem
root3.file=/app/etc/pvt/bbc.pem
root1.File=/app/etc/pvt/abc.pem
db.cluster.trustore=/app/etc/pvt/dbdir/qa-db.jks
someprocess.keystore.path=/app/etc/pvt/qa-key.jks
someprocess.keystore.filename=/homelocation/app/appdir/conf/qa.jks
someprocess..trsustore.filename=/homelocation/app/appdir/conf/qa.jks
newprocess.trustore.filename=/app/etc/dir2/app.jks
otherproces.keystore.filename=/app/etc/new/some.jks
some.tokenfile=/homelocation/apps/etc/somedir/test2.pem.pem
newprocess.filename=qa-key2.jks
appname.keystore.filename=qa.key1.jks
appservice.filename=qa.key3.jks
appname2.filename=qa.new.key4.jks
some3.filename=qa-test_key.jks
some.filename=qa-test_key.jks

3) Теперь мне нужны вышеуказанные файлы, необходимо скопировать только полный путь в какой-то каталог "/ tmp / newdir"

Например, необходимо скопировать только те файлы, которые находятся на аппарате ниже.

root4.file=/abc/xyz/app/etc/pvt/old.pem
root3.file=/app/etc/pvt/bbc.pem
root1.File=/app/etc/pvt/abc.pem
db.cluster.trustore=/app/etc/pvt/dbdir/qa-db.jks
someprocess.keystore.path=/app/etc/pvt/qa-key.jks
someprocess.keystore.filename=/homelocation/app/appdir/conf/qa.jks
someprocess..trsustore.filename=/homelocation/app/appdir/conf/qa.jks
newprocess.trustore.filename=/app/etc/dir2/app.jks
otherproces.keystore.filename=/app/etc/new/some.jks
some.tokenfile=/homelocation/apps/etc/somedir/test2.pem.pem

Их необходимо игнорировать, если они не имеют абсолютного пути.

newprocess.filename = qa-key2.jks
appname.keystore.filename= qa.key1.jks
appservice.filename = qa.key3.jks
appname2.filename= qa.new.key4.jks
some3.filename =qa-test_key.jks
some.filename= qa-test_key.jks

Пожалуйста, помогите мне по вышеуказанному запросу.Заранее спасибо.

1 Ответ

0 голосов
/ 19 ноября 2018

Если вам нужно сохранить структуру каталогов:

cut -d'=' -f2 `command2 output` | grep '^/' | xargs -i cp --parents {} /tmp/newdir/

Просто удалите флаг --parents в cp, если вам нужно только скопировать файлы.

Редактировать

Просто чтобы прояснить, command2 output просто является заполнителем для вывода вашей второй команды, поскольку вы, кажется, записываете свой вывод в файл. Конечно, труба все еще будет работать, например

command2 | cut -d'=' -f2 | grep '^/' | xargs -i cp --parents {} /tmp/newdir/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...