Инструмент для поиска по ветвям и по истории в репозитории Git

sed неуклюже, но вот что я мог получить -

sed  's/.*\(Apple\)[^:]*:"\([0-9]*\)".*/Enter product ID: \1\nYour  product ID is: \2/' 3
Enter product ID: Apple
Your product ID is: 2134

sed  's/.*\(Mango\)[^:]*:"\([0-9]*\)".*/Enter product ID: \1\nYour product ID is: \2/' 3
Enter product ID: Mango
Your product ID is: 4567

Отредактировано на основе последних данных, которые немного отличаются

./prod.sed Apple
Enter product ID: Apple
Your product ID is: 1234

./prod.sed Mango
Enter product ID: Mango
Your product ID is: 12345

prod.sed (use 3rd line for publishName)

#sed  's/.*product_id":"\(Apple\).*"productBuildId":"\([0-9]*\)".*/Enter product ID: \1\nYour product ID is: \2/' data
sed  's/.*product_id":"\('"$1"'\).*"productBuildId":"\([0-9]*\)".*/Enter product ID: \1\nYour product ID is: \2/' data
sed  's/.*product_id":"\('"$1"'\)","publishName":"\([^"]*\)".*/Enter product ID: \1\nYour publish ID is: \2/' data

explanation : substitute the string <anything> Mango <anything other than :> : <number> with -> Your product ID is: Mango <next line> 
Your product ID is : <the number we got> 

 \1 and \2 save the matched expression in \(..\) for later use.
1
10.01.2019, 18:48
1 ответ
mount /dev/loop0p2 /mnt/target
cd /mnt/target/home/
mount /dev/loop0p3 /mnt/target/home/
mkdir -p /mnt/target/home/user/resources

Вы вызываете mkdirс рабочим каталогом, установленным на /homeна /dev/loop0p2. Этот рабочий каталог раньше был доступен по пути /mnt/target/home, но теперь он скрыт за точкой монтирования для /dev/loop0p3. Когда вы вызываете mkdir, путь /mnt/target/homeуказывает на каталог /на /dev/loop0p3.

Не понимаю, зачем mkdirзаботиться о своем рабочем каталоге, но это выглядит странно. Если вы упростили свой сценарий, прежде чем показывать его в своем вопросе, проблема, с которой вы столкнулись, вполне может быть связана с путаницей из-за каталога, скрытого за точкой монтирования.

Так что попробуйте cdвыйти из /mnt/target/homeперед установкой. Или вообще не используйте cdи используйте опцию -Cдля вызова tarи абсолютный путь для rm.

Как правило, избегайте монтирования чего-либо в каталог, который используется каким-либо образом. Целевой каталог должен быть пустым и не должен быть рабочим каталогом какого-либо процесса. Операционная система будет поступать правильно, но то, что она считает правильным, может оказаться неожиданным, и в любом случае это может запутать людей и программное обеспечение.

3
27.01.2020, 23:23

Теги

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