Linuxコマンドラインで作業するには、反復的なタスクをすばやく実行する方法を学ぶ必要があります。遅かれ早かれ自分が関与する可能性のあるそのようなタスクの1つは、空白をタブに変換すること、またはその逆です。このチュートリアルでは、コマンドラインユーティリティ( unexpand と呼ばれる)について説明します。 -それはそのような状況で大いに役立つでしょう。
ただし、始める前に、この記事のすべての例がUbuntu16.04LTSマシンでテストされていることを言及する価値があります。
Linuxunexpandコマンド
unexpandコマンドを使用すると、スペースをタブに変換できます。その構文は次のとおりです。
unexpand [OPTION]... [FILE]...
そして、manページでそれを説明する方法は次のとおりです。
Convert blanks in each FILE to tabs, writing to standard output. With no FILE, or when FILE is -, read standard input.
以下は、unexpandコマンドがどのように機能するかについての良いアイデアを与えるはずのQ&Aスタイルの例です。
Q1。 unexpandコマンドの使用方法は?
タブを含むテキストを含むファイルがあるとします。ここで、何らかの理由で、expandコマンドを使用してこれらのタブをスペースに変換し、スペースを再びタブに変換したい場合は、この場合、unexpandコマンドを使用できます。
例:
unexpand file1
ツールは、stdoutで変換された出力を生成します。そのため、保存するために、ファイルにリダイレクトできます。例:
unexpand file1 > file2
デフォルトでは、このツールは最初の空白でのみ機能することに注意してください。 -aオプションを使用して、すべてのスペース/ブランクをタブに変換することをユーティリティに指示できます。
Q2。初期/先頭の空白のみを強制的に展開解除変換するにはどうすればよいですか?
このツールは、最初の空白またはスペースのみを変換するように強制するオプションを提供します(-aオプションが存在する場合でも)。問題のオプションは-最初のみです 。
unexpand --first-only -a file1 > file2
Q3。 -tオプションは何をしますか?
-tオプションには複数の役割があります。単一の数値、またはカンマで区切られた数値のリストのいずれかを受け入れます。単一の数値(たとえば「n」)を渡すと、unexpandコマンドにより、ファイル内のスペースが「n」の位置ごとにタブに圧縮されます。
たとえば、ツールで3位置ごとに空白をタブに圧縮するには、次のようにこのオプションを使用します。
unexpand -t 3 file1 > file2
一方、このオプションにコマンドで区切られた数字のリストが指定されている場合、ツールはタブストップをそれらの特定の位置に配置します。
unexpand -t 1,2,3 file1 > file2
Q4。 STDINから非拡張読み取り入力を作成するにはどうすればよいですか?
これは非常に簡単です。入力としてファイル名を指定せずにコマンドを実行するだけです(ctrl + Dを使用して、完了したことをユーティリティに通知します)。
これが私が話していることです:
unexpand
実行する作業の種類によっては、unexpandコマンドが非常に役立つ場合があります。このチュートリアルでは、このツールが提供するコマンドラインオプションの大部分について説明しました。詳細については、manページにアクセスしてください。