[解決済み] Macで-iオプション付きのsedコマンドは失敗するが、Linuxでは動作する。
2022-03-14 12:48:20
質問
次のような使い方に成功しました。
sed
コマンドを使用して、Linuxでテキストを検索/置換することができます。
sed -i 's/old_link/new_link/g' *
しかし、私のMac OS Xで試すと、こうなります。
というのも、このような場合、"command c expects \ followed by text"
私のMacは普通にBASHシェルが動くと思ってました。 どうしたんだ?
EDITです。
ハイパフォーマンス(@High Performance)によると、これはMac
sed
このため、私の質問は、このコマンドを BSD でどのように再現するかということです。
sed
?
EDITです。
この原因となる実例を紹介します。
sed -i 's/hello/gbye/g' *
解決方法は?
を使用すると
-i
オプションを使用する場合は、バックアップ用の拡張子を提供する必要があります。
持っている場合。
File1.txt
File2.cfg
コマンド(
-i
と
''
と、その
-e
新しいバージョンのMacとGNUで動作するようにするため)。
sed -i'.original' -e 's/old_link/new_link/g' *
のようなバックアップファイルを2つ作成します。
File1.txt.original
File2.cfg.original
すべてのケースで機能するsedコマンドの組み合わせを見つけることは不可能なので、バックアップファイルを作らないようにするポータブルな方法はありません。
-
sed -i -e ...
- を作成するため、OS X では動作しません。-e
バックアップ -
sed -i'' -e ...
- OS X 10.6では動作しませんが、10.9以上では動作します。 -
sed -i '' -e ...
- GNUで動作しない
備考 すべてのプラットフォームで動作するsedコマンドがないことを考えると、同じ結果を得るために他のコマンドを使用してみることができます。
例
perl -i -pe's/old_link/new_link/g' *
関連
-
deepin20のサブネットマスクはどこですか?deepinのサブネットマスクを表示するためのヒント
-
[解決済み] OS X で 'find' コマンドを使用して 'sed' を使用するとエラーが発生する。"無効なコマンドコードです。"
-
sudo が sudo として表示される: setuid root である必要がある
-
[解決済み] sedで改行をスペースに置き換えるには?
-
[解決済み] 出力をファイルや標準出力にリダイレクトする方法
-
[解決済み] どのバージョンのPostgreSQLを使用していますか?
-
[解決済み] "コード" OSX/MacのVisual Studio Codeのコマンドラインでは動作しない
-
[解決済み] LinuxでCPU/コアの数をコマンドラインから取得する方法は?
-
[解決済み】bashで1つのコマンドでシェル変数にデフォルト値を割り当てる。
-
[解決済み】Mac(BSD)とLinuxの両方で動作するsedのin-placeフラグ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Linuxにおけるxinetdサービスの管理方法に関するケーススタディ
-
Kali Linuxのマウスライトテーマを変更する方法は?マウスカーソルのテーマを変更するためのヒント
-
Linux NICがRTNETLINK answersというエラーで起動できない場合、どうすればよいですか?ファイルが存在するか?
-
deepin20を使って、ドローイングボードで画像を開くには?deepinのお絵かき掲示板で画像を開く2つの方法
-
apache startup error (98) Address already in use: make_sock: could not bind to...
-
[解決済み] エラーです。Can't open display: (null)と表示されることがあります。
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
-
[解決済み] ls を使用してディレクトリとその合計サイズを一覧表示する
-
[解決済み] OS Xでのsedによるインプレース編集