web-dev-qa-db-ja.com

行折り返しのないcatファイル

* nixで、行を折り返さずにファイルを表示(cat)するにはどうすればよいですか。長い行は、画面の幅に収まるようにカットする必要があります。

32
Alexandru

cutはファイル名を引数として受け入れることに注意してください。

これは私にとってはうまくいくようです:

watch 'bash -c "cut -c -$COLUMNS file"'

テストのために、右マージンを追加しました。

watch 'bash -c "cut -c -$(($COLUMNS-10)) file"'

ターミナルのサイズを変更すると、それに合わせて切り捨てが更新されました。

21

あなたが探しているかもしれません fmt

fmt file

これはかなり積極的にテキストを再フォーマットするので、あなたが望む以上のことをするかもしれません。

または、cutコマンドでテキストを特定の列幅に切り取り、右マージンを超えてテキストを破棄することもできます。

cat file | cut -c1-80

もう1つの便利なオプションはless -Sコマンド。ファイルを全画面ウィンドウに表示し、長い行を左右にスクロールします。

less -S file
41
Greg Hewgill

cutの使用は、タブが単一の文字_\t_と見なされることを考慮していませんが、8つの空白スペースとして出力されます。したがって、タブのあるファイルは、認識されるさまざまな列で切り取られます。

_less -S_は、タブが存在する場合でもテキストを最適に切り捨てますが、「切り刻まれた」ファイルを非対話的に印刷するために使用することはできません。

実用的な解決策は、expandを介してタブをスペースに変換し、次に出力をcutすることです:expand < file | cut -c -$(tput cols)

2
cipper

長い行の折り返しを少なく切り替えます。デフォルトは折り返しです。

- `less file`
- in file type `"-S"` to toggle to truncate on line width
- to toggle back `"-S"` again.
2
James Armstrong