助け合いフォーラム

LinuC

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
です。

以下は実行例です。


その他の選択肢は全て、書式が誤っています。

上に戻る

行頭のスペースが変換される

公開日 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つ以上のスペースの変換に使われることを考慮しまして、 問題を改修させていただきました。 よろしくお願いいたします。

この投稿に対して返信しませんか?