OS X端末を使用してファイルを作成し、行を挿入する方法


22

OS Xのターミナルを使用して次のことを行うにはどうすればよいですか?

.inputrcユーザーのホームディレクトリに名前の付いたファイルを作成し、次の行をその中に入れます。

set completion-ignore-case On

回答:


31

素早い回答

touch ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

説明

まず、ファイルを作成します。

touch ~/.inputrc

次に、コンテンツをファイルに追加します。

echo "set completion-ignore-case On" >> ~/.inputrc

touch空のファイルを作成します(~/.inputrcファイルがまだ存在しないと仮定)。echo通常は画面である「標準出力」(略して「stdout」)にテキストを書き込みますが、リダイレクト(>>)のため、出力はにリダイレクトされ~/.inputrcます。この設定により、ファイルに行が追加されます。

場合は~/.inputrc、すでに存在しており、あなたがしたい消去(すなわち、とのファイルの作成(クロバー)その内容を、そしてそれに行を書くだけで、テキストの行を)、実行します。

echo "set completion-ignore-case On" > ~/.inputrc

単一の矢印(>)、別名「より大きい」記号echoは、ファイルの最後に内容を書き込むのではなく、ファイルの内容として指定されたテキストのみでファイルを作成するように指示します。(実際にechoは、ファイルは作成されません。シェルはファイルを作成し、既存のコンテンツを破棄し、echoコマンドは新しいコンテンツを書き込みます。)


最初のアプローチ(を使用)を使用して、>>追加した行が前の行に押し付けられていることがわかった場合、たとえば

ここにあるもの
ここでは、補完無視をオンに設定します

次に、ファイルを編集して修正する必要があります。これは、既存のファイルの最後の行が「改行」文字ではなくテキスト文字(つまり、行末マーカー)で終わっている場合に発生します。これは.TXTWindowsのファイルでは一般的ですが、* nixではまれです。

.inputrcファイルに、改行で終わらない既存のコンテンツがあることを何らかの形で事前に認識している場合は、echo代わりに次のステートメントを使用する必要があります。

echo -e "\nset completion-ignore-case On" >> ~/.inputrc

\nフレーズの前は改行文字として解釈されるため、前のコンテンツの後、追加する新しいものの前に改行が追加されます。

または、わずかに入力を増やしますが、はるかに読みやすく、

echo "" >> ~/.inputrc
echo "set completion-ignore-case On" >> ~/.inputrc

または

(echo ""; echo "set completion-ignore-case On") >> ~/.inputrc

同じことをします。つまり、既存のテキストに不足している改行文字を指定し、その後にset completion-…コマンドを追加します。


1
touchここでコマンドを使用する理由はありません。echo "…" >> ~/.inputrc十分です。
G-Manは、「Reinstate Monica」と言います

1
追加するファイルが存在しない場合を除きます。
amrx

@Baron:いいえ、echo "…" >> ~/.inputrcファイルが存在しない場合は作成します。~存在しないなどの病理学的な場合を除いて、に書き込み権限がない~か、ファイルシステムがいっぱいです。そして、そのような場合、touch助けにはなりません。  touchここでは完全に不要です。
G-Manは「Reinstate Monica」と言います

4

あなたがする必要があるのは:

echo "set completion-ignore-case On" >> ~/.inputrc 

echo 通常の出力チャネル(stdout)を介して与えられたテキストを単にエコーします。

>>あなたのケースである右手ファイルに左側のコマンドからの標準出力を書き込み~/.inputrc

~/ と同じです /home/your_username/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.