助け合いフォーラム
LinuC Lv1-101(Ver10.0)
問題ID : 14578
問題を開く
「spacefile.txt」ファイルにあるスペース2つ分(行頭以外にあるスペースも含む)を、タブに置き換えて表示したい。
適切なコマンドは次のうちどれか。(全て選択)
適切なコマンドは次のうちどれか。(全て選択)
正解
unexpand -a -t 2 spacefile.txt
unexpand -t 2 spacefile.txt
解説
unexpandは、行頭にある連続したスペースをタブに変換するコマンドです。
unexpandコマンドの書式と主なオプションは以下のとおりです。
unexpand [オプション] [ファイル名]
unexpandコマンドで「-t」オプションを使用すると、自動的に「-a」オプションも適用されます。
そのため、「-t 2」を指定すると、「-a -t 2」を指定した場合と同様の結果が得られます。
上記より、正解は
・unexpand -t 2 spacefile.txt
・unexpand -a -t 2 spacefile.txt
です。
以下は実行例です。
その他の選択肢については以下のとおりです。
・unexpand -a 2 -t spacefile.txt
オプションの書式が正しくないので、誤りです。
「-a」の後ではなく、「-t」の後に変換対象のスペースの数を指定します。
・expand -a -t 2 spacefile.txt
・expand -tt spacefile.txt
expandは、タブをスペースに変換するコマンドです。expandコマンドでは題意を満たせませんので、誤りです。
また、expandコマンドに「-a」や「-tt」のオプションは存在しません。
unexpandコマンドの書式と主なオプションは以下のとおりです。
unexpand [オプション] [ファイル名]
unexpandコマンドで「-t」オプションを使用すると、自動的に「-a」オプションも適用されます。
そのため、「-t 2」を指定すると、「-a -t 2」を指定した場合と同様の結果が得られます。
上記より、正解は
・unexpand -t 2 spacefile.txt
・unexpand -a -t 2 spacefile.txt
です。
以下は実行例です。
その他の選択肢については以下のとおりです。
・unexpand -a 2 -t spacefile.txt
オプションの書式が正しくないので、誤りです。
「-a」の後ではなく、「-t」の後に変換対象のスペースの数を指定します。
・expand -a -t 2 spacefile.txt
・expand -tt spacefile.txt
expandは、タブをスペースに変換するコマンドです。expandコマンドでは題意を満たせませんので、誤りです。
また、expandコマンドに「-a」や「-tt」のオプションは存在しません。
行頭のスペースが変換される
投稿日 2024/01/11
解説内に
なお、行頭の「 1」はスペースが連続していないためタブに変換されません。
とありますが、実際に動作させるとタブに変換されるのですが環境の問題でしょうか?
$ cat spacefile.txt
111
222
333
1 2 3
$ unexpand -a -t 1 spacefile.txt
111
222
333
1 2 3
スタッフからの返信
この投稿に対して返信しませんか?
s staff_ueda
2024/01/18 13:31
emiyamoto 様 ご報告いただきまして、誠にありがとうございます。 unexpandコマンドでスペース1つを指定した場合の動作が安定しない可能性があることと、 このコマンドが一般的に2つ以上のスペースの変換に使われることを考慮しまして、 問題を改修させていただきました。 よろしくお願いいたします。