假设我们有以下命令及其相关输出:
gsettings list-recursively org.gnome.Terminal.ProfilesList | head -n 1 | grep -oP '(?<=\[).*?(?=\])'
输出:
'b1dcc9dd-5262-4d8d-a863-c897e6d979b9', 'ca4b733c-53f2-4a7e-8a47-dce8de182546', '802e8bb8-1b78-4e1b-b97a-538d7e2f9c63', '892cd84f-9718-46ef-be06-eeda0a0550b1', '6a7d836f-b2e8-4a1e-87c9-e64e9692c8a8', '2b9e8848-0b4a-44c7-98c7-3a7e880e9b45', 'b23a4a62-3e25-40ae-844f-00fb1fc244d9'
我需要在脚本中使用gsettings命令并创建有关输出ot gessetings命令的文件名。例如,文件名应为
b1dcc9dd-5262-4d8d-a863-c897e6d979b9
下一个:
ca4b733c-53f2-4a7e-8a47-dce8de182546
等等。
我怎么能这样做?
答案 0 :(得分:1)
另一个解决方案......只需将命令输出传递给:
your_command | sed "s/[ ']//g" | xargs -d, touch
答案 1 :(得分:0)
您可以使用进程替换来读取gsettings输出并将其存储在数组中:
IFS=', ' read -r -a array < <(gsettings)
for f in "${array[@]}"
do
file=$(echo $f |tr -d "'" ) # removes leading and trailing quotes
touch "$file"
done