コマンドラインでテキストファイルの内容を表示するにはどうすればよいですか?


131

コマンドラインでテキストファイルの内容を表示したいと思います。ファイルには5〜6文字しか含まれていません。これを行う簡単な方法はありますか?

回答:


194

を使用して cat

ファイルが短いため、を使用できます cat

cat filename

を使用して less

長いファイルの内容を表示する必要がある場合は、などのページャーを使用できます less

less filename

あなたは作ることができるlessように振る舞うのcat小さなファイルに呼び出されたときに、それを渡すことで、通常はそうでない場合に動作-Fし、-Xフラグ。

less -FX filename

のエイリアスがありless -FXます。次のように自分で作成できます。

alias aliasname='less -FX'

シェル構成にエイリアスを追加すると、永久に使用できます。

を使用して od

ファイルに奇妙な文字や印刷できない文字が含まれている場合odは、文字を調べるために使用できます 。例えば、

$ cat file
(ÐZ4 ?o=÷jï
$ od -c test
0000000 202 233   ( 320   K   j 357 024   J 017   h   Z   4 240   ?   o
0000020   = 367  \n
0000023

+1もsed -n l file有用です。
エンゾチブ

1
lessような他のページャープログラムに比べて明確な利点はありますかpg、それとも個人的な好みに要約されますか?
サムワインバーグ

@SamWeinberg:lessより多くの機能がありpgます。見てくださいless(1)pg(1)manページを。他のページャーもあります。見てくださいunix.stackexchange.com/questions/81129/...をlessおそらく最も広く使用されているポケットベルですが、どちらを使用するかは個人の好みに依存します。

忘れないmoremost
ルドルフオラー

29

誰もが利用していてもcat filename、標準出力最初の目的へのファイルのテキストを印刷する詐欺である猫の enating。猫のmanページから:

cat-ファイルを連結し、標準出力に出力します

catはファイルの印刷には問題ありませんが、代替手段があります。

  echo "$(<filename)"
or
  printf "%s" "$(<filename)"

( )この場合には、コンテンツの式の値を返し、ファイル名、次にによって拡張される$ためechoまたはprintf

更新:

< filename

これはまさにあなたが望むことをし、覚えやすいです。

次に、メニューでファイルを選択して印刷できる例を示します。

#!/bin/bash

select fname in *;
do
# Don't forget the "" around the second part, else newlines won't be printed
  printf "%s" "$(<$fname)"
  break
done

さらに読むには:
BashPitfalls-catファイル| sed s / foo / bar /> file
Bashリファレンス-リダイレクト


あなたの更新:「< filenameまさにあなたが望むもの、...」は誤解を招く。全体として、これは代替案に関する興味深い議論ですが、私catはもっと簡単だと思います。
Xティエン

ベア< filenameはファイルの内容を表示しませんが、表示cat filenameします。
ジャーノ

を使用することもできますtee < filename
ヤルノ

2
echo "$(<filename)"バシズムのために+1 。ここでは十分ではありません。
妖怪

echoでLinux Internal Commandを使用するのは素晴らしい考えです"$(<filename)"。おかげで...
レザHarasani

9

次のコマンドを使用して、テキストファイルの内容を表示できます。

猫のファイル名 

の詳細についてはcat、を実行してくださいman cat

9

UNIX上のテキストファイルを処理するツールは、基本的な日常的なコマンドです。

UNIXおよびLinuxでファイル内のコンテンツ全体を印刷する

cat filename.txt

または

more filename.txt

または

less filename.txt

最後の数行

tail filename.txt

最初の数行

head filename.txt

4

1つのオプションは使用することです more

例えば more file.txt

ただし、によって追加されたすべての機能はありませんless
簡単な例の1つは、出力を上にスクロールできないことです。一般的に、それはより少ないものに取って代わられました。

少ないほうがいいですね


3

$ less "your file here"非常にシンプルで、組み込みの対話型grepコマンドを提供し、矢印キーでスクロールできる使いやすいインターフェイスを提供するため、私は常にを使用します。

(ほぼすべての* nixシステムにも含まれています)


lessmore(と比較man lessしてman more)の過剰なバージョンであり、私にとっては2つの迷惑な機能があります:1)代替画面バッファに切り替わり、終了が少なくなると、表示していたファイルが消えますq(これにはオプションがあります)。新しい環境での最初のアクションの1つは、export PAGER=/bin/moreプロファイルに設定してmore常に使用することです。
-ott--

@ ott--:1)-Xフラグを試してください。2)-Eフラグを試してください。less持っているmoreエミュレーションモードを。LESS_IS_MORE環境変数を設定することで有効にできます。moreエミュレーションモードで上にスクロールできます。


しかし、一般的に、私はそれlessが過度に複雑であることに同意します。外部コマンドを実行する機能は、その複雑さの完璧な例です。

@EvanTeitelman私はいつも自分でgrep機能を非常に便利だと思ってきました。@ ott--のエミュレーションでありmore、多くの追加機能があるため、非常にうまく機能しています。
SG60

2

その大きなファイルで、特定の部分を検索したい場合は、使用できます

 cat filename | grep text_to_search -ni 

また、よりインタラクティブなVimエディター(またはVimがない場合はviエディター)を使用できます。

 vim filename
Or
 vi filename

Vim / viは優れたエディターであり、「通常モード」でリーダーとして使用することも、-Rオプションを使用することもできます。ファイルの閲覧に役立つ多くの機能があります。


短いのvim -Rviewです。ただし、xargsおよびvi-「入力は端末からではありません」で説明されているように、リダイレクトは好きではないことに注意してください。
マナトワーク

@manatworkに感謝します!私は最近Vimを使い始めましたが、いくつかの機能があるため気に入っています。リダイレクトに関しては、忘れてしまいました。リマインダーをありがとう。現在のところ、GUIインターフェイスなしでsshを使用するリモートVMで作業しているため、他のGUIエディターが機能しない場合にVimが非常に役立つため、ここでVimを強調しました。
子供を心配しないでください

1

catコマンドを使用して、ファイル名の内容を表示します。猫のファイル名

vimコマンドを使用してファイルを編集します。vimファイル名

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.