RHEL5.8で/ bin / bashを使用していて、ファイルの編集を自動化したい。ファイルを検索してファイル内の行を置き換えるためのスクリプトが必要です。行の例:
Other line Current date 01121990 Other line
この行を検索し、日付文字列を所定の日付に置き換えます。このファイルはサーバー固有のファイルからコピーされるため、新しいファイルにエコーして日付を入力できません。ありがとうございます。
コメント
回答
your_date="your desired date" sed -i "s/^Current date.*/Current date ${your_date}/" /path/to/file
これが最も簡単な方法です。これは、置き換える日付を含むすべての行が「現在の日付」で始まる唯一の行であることを前提としています。
このコマンドを実行するユーザーレベルには、そのファイルを編集する権限も必要です。
-iはインライン編集を意味し、ファイルを直接編集していることを意味します。
^Current date.*
次で始まるすべての行を意味します:現在の日付そして何でも終わる。つまり、行全体をsedの2番目の/…/部分にあるものに置き換えます。
sedステートメントの前後にDouble “を使用して、変数が変数として使用されるようにします。文字列。
コメント
- Lizardxに感謝します。'はまさに私が必要としているものであり、テストしました。うまく機能します
- それを聞いてとてもうれしいです。
回答
ed
はファイルのインプレース編集も実行できます!編集されたファイルのiノード番号は変更されません。
file="/path/to/file" your_date="your desired date" ls -i "$file" printf "%s\n" H ",g/^Current date.*/s//${your_date}/" wq | ed -s "$file" ls -i "$file"
sed
がここで選択するツールになります…