この文字のすべてのインスタンスを置き換えるためにこのスクリプトを使用したいと思います。尋ねる"question.txt"ファイルの内容を含むファイル。代わりに何が起こるのかは、すべてのインスタンスが尋ねるファイルの内容は消え、「question.txt」の内容が新しいファイルの下部に印刷されます。
どんなアイデアがありますか?
sed -i.bkp '/Q/{
s/Q//g
r /Users/ericbrotto/Desktop/question.txt
}' Commision.txt
編集1
どのバージョンがあるかを調べようとしていますが、このメッセージが表示され続けます。
答え1
理由を見つけたと思います。
ファイル名の後にスペースを入れると、後にスペースがあるファイル名が検索されます。次のように問題を再現できます。
源泉:
cat q.dat
Q
Not q
And Q again
And again not
cat kuh.dat
Die dumme
Kuh
ファイル名 "kuh.dat" の操作例:
sed '/Q/{
s/Q//g
r kuh.dat
}' q.dat
Die dumme
Kuh
Not q
And again
Die dumme
Kuh
And again not
「kuh.dat」を使った失敗した例があります。
sed '/Q/{
s/Q//g
r kuh.dat
}' q.dat
Not q
And again
And again not
ファイル名を引用せずにファイル名末尾の空白が認識されるのが私にとっては大きな驚きでした。そしてシェルでは見ることができず、長い間検索しましたが、成功しませんでした。これら2つの例の違いは何ですか?