私はmacOS High Sierraを使用していますが、Googleとこのサイトで1日を過ごした後にsedといくつかの問題がありました。正直なところ試しました私が考えることができ、示唆されたすべて。sedをmacOSで使用してbashスクリプトと置き換える方法
私は3行のexample.txtファイルを持っています。 line1 line2 line3
3行は何でもかまいませんが、私はそれらを前もって知りません。 (シナリオ) そして、ある時点で私はその行がどうなるかを知っています。
私が達成したいのは基本的には: という2番目の行を新しいデータで置き換えた '何でも'のライナーを使うことです。
sed -i "2s/.*/$NEW_DATA/" "$FILENAME"
これは動作するはずですが、MacOSの上で、これはそうではありません。
sed -ie "2s/.*/$NEW_DATA/" "$FILENAME"
注E?誰かがここにeを追加するように提案しましたが、そうです、それは.txtの後ろにeを追加することを意味します。私は2つのファイル、EXAMPLE.SQLのと
sed -i'' "2s/.*/$NEW_DATA/" "$FILENAME"
をexample.txte注 '' -iの後ろに、はい、スペースなしで終わりますか?これもうまくいくはずです。 それは、それは私が上に行く可能性が
\そのコマンドcが必要と文句を言うでしょうしませんが、要求は非常に簡単です: MacOSで、bashシェルスクリプトで、私は単純に、指定をどのように置き換えますか.txtファイル内のテキスト行と全く新しい行のテキスト - 前の行のテキストが分からない
これはawkなどの単純なmacOSライナーでもかまいませんが、それは問題ありません。それはsedされる必要はありません。しかし、私はこのサイトを検索すると、この点に関しては推薦されているようです。
が行動をい-i "-eを使用すると変更されますか?私はいつも-eがとにかく暗黙だと考えました。 –