主にLinuxコマンドラインで作業している場合、テキスト編集は、自分が関与する可能性のある最も頻繁なタスクの1つである可能性があります。スクリプト、ソースコードファイル、構成ファイル、または通常のテキストファイルの編集であるかどうかにかかわらず、いくつかのテキストがあります。作業に役立つ編集ツール。
そのようなツールの1つがcolrm 、ここでは、わかりやすい例を使用して説明します。ただし、それを始める前に、ここでのすべての例がUbuntu18.04LTSマシンでテストされていることを言及する価値があります。
Linuxcolrmコマンド
Linuxのcolrmコマンドを使用すると、選択した列をファイルから削除できます。その構文は次のとおりです。
colrm [start [stop]]
そして、これがcolrmのマニュアルページがツールの機能を説明する方法です:
The colrm utility removes selected columns from the lines of a file. A
column is defined as a single character in a line. Input is read from
the standard input. Output is written to the standard output.
If only the start column is specified, columns numbered less than the
start column will be written. If both start and stop columns are speci?
fied, columns numbered less than the start column or greater than the
stop column will be written. Column numbering starts with one, not zero.
以下は、colrmコマンドがどのように機能するかについての良いアイデアを与えるはずのQ&Aスタイルの例です。
Q1。 colrmコマンドの使用方法は?
すでに述べたように、colrmコマンドを使用すると列を削除できます。したがって、数値を指定するだけで、その値に対応する列とそれに続くすべての列が出力に固定されます。
たとえば、次のテキストを含むテキストファイル「file1.txt」を次に示します。
abcdefgh
colrmの場合、各アルファベットは列を表します。したがって、ここで、要件が列6とそれに続くすべての列を削除することであるとすると、これは次を使用して実行できます。
colrm 6 < file1.txt
上記のコマンドが生成する出力は次のとおりです。
これで、6列目、7列目、8列目が軸になっていることがわかります。
Q2。 1つの列だけを削除するにはどうすればよいですか?
その場合、開始列と停止列の両方を指定する必要があります。列番号6のみを削除する必要があるとすると、そのためには、次の方法でcolrmコマンドを実行する必要があります。
colrm 6 6 < file1.txt
このコマンドが私のシステムで生成した出力は次のとおりです。
したがって、6番目の列のみが削除されたことがわかります。言うまでもなく、この方法で列の範囲を削除できます。例:
colrm 2 6
このコマンドは、2から6の範囲の列を削除します。列番号はゼロではなく1から始まることに注意してください。
ツールのマニュアルページでは、これを非常に明確に説明しています。関連する抜粋は次のとおりです。
また、colrmは成功すると0を返し、エラーが発生すると>0を返すことに注意してください。
それはとても簡単です。余分なことをする必要はありません。入力に列番号(または範囲)を指定するだけです。
次に例を示します: したがって、コマンドは実行時に入力が提供されるのを待ち、Enterキーを押した後に出力を生成します。
ご存知かもしれませんが、colrmコマンドは、テキストファイルから列を削除する場合に便利な小さなユーティリティです。ここで、このチュートリアルでは、そのほとんどすべての機能について説明しました。これらの練習が終わったら、そのマニュアルページに進んでコマンドの詳細を学ぶことができます。
Q3。 colrmはバックスペースとタブをどのように処理しますか?
Tab characters increment the column count to the next multiple of eight.
Backspace characters decrement the column count by one.Q4。 colrmにstdinからの入力を受け入れるようにするにはどうすればよいですか?