と仮定我々持って、次のコマンドとその関連出力:BASHに特定の文字で区切られた文字列を使用してファイルを作成します
gsettings list-recursively org.gnome.Terminal.ProfilesList | head -n 1 | grep -oP '(?<=\[).*?(?=\])'
出力:私はスクリプトでgsettingsコマンドを使用する必要が
'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'
gessetingsコマンドの出力に関するファイル名を作成します。
:たとえば、ファイル名がca4b733c-53f2-4a7e-8a47-dce8de182546
b1dcc9dd-5262-4d8d-a863-c897e6d979b9
次のいずれかである必要があります
など。
どうすればいいですか?
することができますあなたのsedコマンドを早期に終了するように変更し、OPは '| head -1': 'sed" s/['] // g; 1q "'となります。 '' [''を ''に置き換えるには、文字クラスの先頭に追加するだけです: 'sed 's/[] ['] // g; 1q" 'これはOPパイプのgsettingをsedに直接行かせます。 – andlrc
@ dev-null:あなたは100%正しいです。あなたの提案に応じてOPに彼の最初のcmdを変更させる – mauro