[解決済み] コマンドでファイルを使用し、出力を切り詰めることなく同じファイルにリダイレクトするにはどうすればよいですか?
2022-09-12 08:37:39
質問
基本的には、ファイルからテキストを入力として受け取り、そのファイルから行を削除し、出力を同じファイルに送り返したいのです。それがより明確であるならば、これらの線に沿った何か。
grep -v 'seg[0-9]\{1,\}\.[0-9]\{1\}' file_name > file_name
を実行すると、空白のファイルになってしまいます。 何かいい方法はないでしょうか?
どのように解決するのですか?
bashはまずリダイレクトを処理し、それからコマンドを実行するので、それはできません。つまり、grepがfile_nameを見るときには、すでに空になっているのです。しかし、一時ファイルを使用することはできます。
#!/bin/sh
tmpfile=$(mktemp)
grep -v 'seg[0-9]\{1,\}\.[0-9]\{1\}' file_name > ${tmpfile}
cat ${tmpfile} > file_name
rm -f ${tmpfile}
というように
mktemp
を使って
tmpfile
を作成しますが、POSIXでないことに注意してください。
関連
-
[解決済み】ログアウトと再ログインをせずに.bashrcの設定を再読み込みする方法とは?
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] あるディレクトリにあるすべてのコード行を再帰的にカウントするにはどうすればよいですか?
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] Git上でシェルコマンドを実行する際に使用するSSH-keyの秘密鍵を指定する方法は?
-
[解決済み] 出力をファイルや標準出力にリダイレクトする方法
-
[解決済み] 現在の日付と時刻を句読点を使わずに表示する
-
[解決済み] すべてのファイルに再帰的にファイル拡張子を追加する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 現在の日付と時刻を句読点を使わずに表示する
-
[解決済み] シェルプログラミングで「export」は何をするのですか?重複
-
[解決済み] Bashでコマンド出力を隠す方法
-
[解決済み] コマンドライン・ターミナルでの乗算
-
[解決済み] スクリプトの実行に関連したファイルの参照
-
[解決済み] Cronジョブおよびランダム時間(指定時間内
-
[解決済み] Bashはどのように異なるディレクトリコンテキストでコマンドを実行できますか?
-
[解決済み] unset の使用と変数への空の設定
-
[解決済み] homebrew パッケージがインストールされているかどうかを検出する
-
[解決済み] MSYSでフォルダを閲覧する