コマンドラインから提供された情報に基づいて数多くの文字列置換を実行するプロジェクトワークフローの新しいインスタンスを作成するためにいくつかのreposを取得するために使用するBashスクリプトがあります。Bashスクリプトsedの使用がZSHで問題を引き起こす
同僚はZSHを使用していて、スクリプト内でsed
を使用した結果、問題が発生しています。具体的には、それは正規表現を処理していないようだ?たとえば、次のエラーが発生...
# Author Name.
if [[ $authorname ]]
then
sed -i "" "s/Author Name/$authorname/g" "$file"
fi
:
sed: can't read "s/Author Name/$authorname/g" : No such file or directory
私たちは、文字列置換エラーの大半は離れて行く-e
フラグを追加することによって、しかし彼はまだAを取得することを発見しました「が見つかりません」エラーの数...
sed: can't read : No such file or directory
はバッシュとZSH優しいの両方で文字列置換を行うためのより良い方法はありますか?
この意志
man sed
からしかし、BSDで失敗する。実際には、プラットフォーム間で '-i'を使用する移植可能な方法はありません。 – tripleee
また、 'sed -i" "...'は 'sed -i ...'と*正確に*等価です。 '-i" "'は引用符を削除した後、 '-i'と同じ単語です。 – chepner