Q&A
解決済
3回答
11244閲覧
総合スコア14
Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。
0グッド
1クリップ
投稿2018/01/14 07:55
0
1
Linuxのedコマンドで、あるファイルの末尾に改行を挿入する方法を知りたいです。
echo -e "$s/$/XX/g\nw" | ed - /tmp/Command2.sh
上記コマンドを実行すると、最終行の末尾に"XX"が挿入されますが、"XX"となっている所を例えば"\n"のように改行に置き換えて実行ても、期待する結果にならない状況です(末尾に改行が挿入されない)。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答3件
この例の場合、edは直接編集できる点はありますが、ちょっとトリッキーで自動処理には不向きですから、sedを使ったほうが良いと思います。
bash1cat /tmp/Command2.sh | sed -e '$s/$/\nXXX/' > /tmp/work 2mv /tmp/work /tmp/Command2.sh
bash
1cat /tmp/Command2.sh | sed -e '$s/$/\nXXX/' > /tmp/work 2mv /tmp/work /tmp/Command2.sh
投稿2018/01/14 08:35
退会済みユーザー
総合スコア0
回答へのコメント
2018/01/14 08:47
ベストアンサー
下記でいかがでしょうか?
bash1echo -e "$s/$/\\\n/g\nw" | ed - /tmp/Command2.sh
1echo -e "$s/$/\\\n/g\nw" | ed - /tmp/Command2.sh
sedを使う場合は下記のようになります。最後行の最後を改行で文字列置換です。
bash1sed -e '${s/$/\n/}' -i /tmp/Command2.sh
1sed -e '${s/$/\n/}' -i /tmp/Command2.sh
投稿2018/01/14 08:15
総合スコア1652
2018/01/14 08:55 編集
edコマンドによる方法はわかりませんが、
改行文字だけのファイルをあらかじめ作成し、ファイル結合するとかリダイレクトで追記するとかでもできそうだと思いますあ。
投稿2018/01/14 08:08
総合スコア4860
2018/01/14 08:48
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/14 08:47