
1つ目テキストファイルと2つ目のテキストファイルの間に改行文字を入れながら2つのファイルを連結し、1つ目のファイルに上書き保存する方法をお教え下さい。
以下のスクリプトを考えましたが、これでは改行文字が削除されてしまいます。
(f1.txtの内容)
ab
(f2.txtの内容)
xy
(スクリプト)
#!/bin/bash
echo -e "\n" >> f1.txt
echo -e `cat f1.txt f2.txt` > f1.txt
(できあがったf1.txtの内容)
ab xy
2018年1月21日
No.1ベストアンサー
- 回答日時:
Windows のメモ帳などで開くなら、改行コードは CR LF です。
\r = CR
\n = LF
#!/bin/bash
echo -e "\r\n" >> f1.txt
cat f2.txt >> f1.txt
bx2様、ありがとうございます。
なぜか、"cat f2.txt >> f1.txt"に思い至らず、
"cat f1.txt f2.txt > f1.txt" というものに取りつかれていました。
2018年1月21日
No.2
- 回答日時:
` (バッククオート) の動作を誤解しています。
` は、それで囲まれた文字列を「コマンド」と見做して実行し、その結果'(標準出力) を文字列にする機能があります。
https://linuxjm.osdn.jp/html/GNU_bash/man1/bash. …
> コマンド置換
> 末尾の改行文字は削除されます。
> 文字列の途中にある改行文字は削除されませんが、 単語分割の際に削除されることがあります。
シェルスクリプトでは、 置換を行なった最終的な状態でコマンドを実行します。
echo -e `cat f1.txt f2.txt`
は
echo -e ab\
xy
という状態に置換されて実行されます。
(継続行なので、末尾に\を付けました)
このとき、改行はただの区切り文字扱いなるので
echo -e ab xy
と同じことになります。
コマンド置換を使っているのは、何か意図があるのでしょうか?
echo -e "\n" >> f1.txt
は「 echo -e "\n" を実行し、その出力を f1.txt に追加する 」の意味です。
だとすれば
「ファイルf2.txt の内容を出力する」コマンドの出力を f1.txt に追加するようにすればいいだけでは?
cat f1.txt f2.txt
を使うのなら、一旦別ファイルに保存して、それをf1.txtにコピーするという方法もあります。
kmee様、ありがとうございます。
別ファイルへの保存を避けることを考えていましたが、bx2様へのお礼に書きましたとおり、誤ったことを考えていました。
2018年1月21日
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
UNIX ファイル存在チェックの方法
-
リダイレクト >> を複数のファ...
-
linux日本語入出力の仕組み
-
diffコマンドにてテキスト出力
-
標準出力/標準エラー出力を時...
-
コマンドプロンプトで標準エラ...
-
アスタリスクを文字列として変...
-
echoの出力の最後のスペースを...
-
nkfで全角ハイフンが半角になる...
-
fcコマンドにて異なるファイル...
-
DOSコマンドでドットを2個...
-
bashで、gotoのようなラベルに...
-
zshのワイルドカード展開について
-
【DOSコマンド】for の デリミ...
-
.txtって、縦書きにはならない...
-
コマンド実行結果を環境変数に...
-
コマンドプロンプトのエラーに...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトの「%1」と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
echoの出力の最後のスペースを...
-
xcopyで特定のファイルのみをコ...
-
【VBA】テキストファイルから特...
-
echo "abc" >> test.txt で、先...
-
コマンドプロンプトで相対パス...
-
リダイレクト >> を複数のファ...
-
コマンドプロンプトで標準エラ...
-
バッチファイル 指定行の切り出し
-
バッチファイルのfor文を使って...
-
バッチファイル 現在のフォルダ...
-
コマンド実行結果を環境変数に...
-
バッチファイルで改行の出力
-
NULLの置き換えについて
-
.txtって、縦書きにはならない...
-
複数テキストファイル連結につ...
-
バッチコマンドの「set」で入力...
-
Diskpart のリダイレクトの質問...
-
特定のファイルだけをサブディ...
-
DOSプロンプト:一番速く10万...
-
nkfで全角ハイフンが半角になる...
おすすめ情報