[解決済み] 複雑なテキストファイルでシェル変数を置換する方法
2022-03-05 11:53:10
質問
いくつかのテキストファイルにシェル変数(例えば$VAR1や$VAR2)を導入しています。
これらのファイルを(1つずつ)取り出して、すべての変数を置き換えた新しいファイルに保存したいと思います。
これを行うには、以下のシェルスクリプトを使用しました(StackOverflowで発見)。
while read line
do
eval echo "$line" >> destination.txt
done < "source.txt"
これは非常に基本的なファイルに対して非常によく機能します。
しかし、より複雑なファイルでは、"eval" コマンドはあまりにも多くのことを行います。
-
で始まる行はスキップされます。
-
XMLファイルのパースで大量のエラーが発生する
何か良い方法はないでしょうか?(シェルスクリプトで...例えばAntで簡単にできるのは知っています)。
よろしくお願いします。
解決方法は?
見ると、私のシステムには
envsubst
コマンドは、gettext-base パッケージの一部です。
これで簡単にできるんですね。
envsubst < "source.txt" > "destination.txt"
もし、同じファイルを両方に使いたい場合は、moreutil の
sponge
というのは、Johnny Utahhが提案したとおりです。
envsubst < "source.txt" | sponge "source.txt"
. (シェルのリダイレクトでは、読み込む前にファイルを空にしてしまうため)。
関連
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] テキストファイルから、特定の文字列を含むすべての行を削除するにはどうすればよいですか?
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] Bashで変数で定義された数値の範囲を反復処理するにはどうすればよいですか?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
-
[解決済み] 特定のファイル/フォルダを除外してディレクトリをtarするシェルコマンド
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 予期しないトークン 'then' 付近の構文エラー
-
[解決済み】Postgresql -bash: psql: コマンドが見つかりませんでした。
-
[解決済み] SVNパッチの作成と適用方法について教えてください。
-
[解決済み] chmod: 'my_script.sh' のパーミッションを変更しました。操作が許可されていない
-
[解決済み] Ubuntuにchkconfigをインストールするにはどうしたらいいですか?
-
[解決済み] Linuxのシェルでwebsocketの応答を読み取る方法
-
[解決済み] シェルで 'exec ls' を実行すると何が起こるか、またその理由は?[クローズド]。
-
[解決済み] sudo mv home/* *」というコマンドは何をするのですか?[クローズド]
-
[解決済み] CLIから、ファイルの最終行を表示する
-
[解決済み] Solaris では lsof -i が相当します。