zshスクリプトにて、最終的に以下のコードを sed -i.bak -e "75,78d" -e "74,74d" -e "67,71d" ~/target
のように展開させて対象のファイルの行を削除して保存を行いたいです。
shell
1targetFile=~/target 2arr=($'74:74:baz\nqux' '67:71:quux' $'75:78:foo\nbar') # 各要素の先頭2フィールドが削除する行の指定 3 4# sed に与える -e "1,2d" 形式の引数を得る 5cmds=$( 6 for line in "${arr[@]}"; do # 要素に改行が含まれた配列を要素ごとに処理させるようにする 7 echo "${(q)line}" 8 done | awk -F: '{printf "-e \"%d,%dd\"\n", $1, $2}' | sort -nr 9) 10sed -i.bak "${cmds[@]}" "$targetFile" 11
しかしこのままだと
sed: -e expression #1, char 2: 不明なコマンド: `"'
のようなエラーが出ます。
何がおかしいのでしょうか?
ちなみに降順でソートを行っているのはファイルの後ろの方から削除しないと行がズレると思ったからです。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/22 02:11
2022/04/22 02:36