1

ios mobileprovisionファイルからいくつかのものを抽出したいと思います。そのうちの1つは、ファイル内に保存されているプロファイルの名前で、通常はファイル内で次のようなものです。

<key>Name</key>
<string>My Profile Name</string>

また

<key>Name</key>
<string>iOS Team Provisioning Profile: *</string>

これらの名前は、iOS開発者ポータルのプロビジョニングセクションに表示されるプロファイルの名前に由来します。

こんなことができるのではないかと思いました

#!/bin/bash
mypath='/Users/username/Library/MobileDevice/Provisioning Profiles/'
cd "$mypath"
for file in *.mobileprovision
do

get_the_profile_name=$(grep -i '<key>name</key>' -A1 -a "$mypath$file" | grep -v "Name" | cut -f2 -d\> | cut -f1 -d\<)

done

これにより、変数get_the_profile_nameがコマンドの結果に設定されます。アイテムの最初の例では正常に機能しますが、2番目の例では、変数にディレクトリ内のファイルのファイル名が含まれます。これはアスタリスクまたはコロンによるものだと思います。

私が望むことを達成する方法はありますか?もしそうなら、提案を歓迎します

4

2 に答える 2

1

これはアスタリスクまたはコロンによるものだと思います。

いいえ、これは適切に引用していないためです。

echo "$get_the_profile_name"

また、XMLStarlet

于 2012-12-06T03:05:05.933 に答える
0

私の場合、を使用しているため、最初の例は機能しませんgrep -vGNU sed次のように使用すると、より少ないパイプでより安全にやりたいことができます。

get_the_profile_name=$(sed -n '/<key>name<\/key>/I { n; s/[^>]*>\(.*\)<[^<]*/\1/p }' "$mypath$file")

echo "$get_the_profile_name"
于 2012-12-06T03:32:54.400 に答える