
質問に対する回答が得られるように、ファイル名を変更して詳細を追加したいと思いました。
crontabに以下の行があります
00 * * * * /home/@@@@/ulimit_nofile_status_20480.sh >> /export/####/$$$$$/ulimit_nofile_status.txt
00 * * * * /home/@@@@/ulimit_nproc_status_20480.sh >> /export/####/%%%%/ulimit_nproc_status.txt
ulimit_nofile_status_20480.sh
ファイル名を とをそれぞれとulimit_nproc_status_20480.sh
に変更します。ulimit_nofile_status_40960.sh
ulimit_nproc_status_40960.sh
つまり、20480を40960に名前変更したいのです
以下のコマンドを試しましたが、うまくいきませんでした。
crontab -l | sed 's#/_20480\.#/40960.#' | crontab -
crontab -l | sed 's/\<_20480\>/40960/' | crontab -
"sed -i s//40960/" crontab -e
答え1
正規表現がおかしいです。次の正規表現が機能するはずです。
crontab -l | sed 's#_20480\.#_40960.#' | crontab -
試行ではアンダースコアの前にスラッシュが必要でしたが、もちろん、crontab
ファイルにはスラッシュがないため、正規表現は何も一致しませんでした。
置換したい20480
とおっしゃっ40960
ていますが、いくつかの試みを見ると、数字の前のアンダースコアも削除したいようです。それが正しい場合は、置換文字列からアンダースコアを削除してください。
そうでなければ良い試みだったであろうことをあなたはsed
認識していないのではないかと推測します。\<
最後の試みは、有効な構文からかけ離れているため、意味のあるコメントはできないと思います。これは、引数をパラメーターとして渡して、文字列をsed -i s//40960/
コマンドの名前として使用しようとしているものとして解析されます。crontab
-l