web-dev-qa-db-fra.com

Comment afficher le contenu d'un fichier texte sur la ligne de commande?

Je souhaite afficher le contenu d'un fichier texte sur la ligne de commande. Le fichier ne contient que 5-6 caractères. Y a-t-il un moyen facile de faire ceci?

152
Sam Weinberg

Utilisation de cat

Puisque votre fichier est court, vous pouvez utiliser cat .

cat filename

Utilisation de less

Si vous devez afficher le contenu d'un fichier plus long, vous pouvez utiliser un pager tel que less .

less filename

Vous pouvez faire en sorte que less se comporte comme cat lorsqu'il est invoqué sur de petits fichiers et se comporter normalement autrement en lui passant le -F et -X drapeaux.

less -FX filename

J'ai un alias pour less -FX. Vous pouvez en créer un vous-même:

alias aliasname='less -FX'

Si vous ajoutez l'alias à votre configuration Shell , vous pouvez l'utiliser pour toujours.

Utilisation de od

Si votre fichier contient des caractères étranges ou non imprimables, vous pouvez utiliser od pour examiner les caractères. Par exemple,

$ 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
220
user26112

Même si tout le monde utilise cat filename pour imprimer un texte de fichier vers la sortie standard, le premier but est de con cat enating. De la page de manuel de chat:

cat - concaténer des fichiers et imprimer sur la sortie standard

Maintenant, chat est bien pour imprimer des fichiers, mais il existe des alternatives:

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

Le ( ) renvoie la valeur d'une expression, dans ce cas le contenu de filename qui est ensuite développé par $ pour echo ou printf.

Mise à jour:

< filename

Cela fait exactement ce que vous voulez et est facile à retenir.

Voici un exemple qui vous permet de sélectionner un fichier dans un menu, puis de l'imprimer.

#!/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

Pour en savoir plus:
BashPitfalls - fichier cat | sed s/foo/bar /> fichier
Référence Bash - Redirection

31
crunsher

Vous pouvez utiliser la commande suivante pour afficher le contenu d'un fichier texte.

 nom de fichier du chat 
9
forvaidya

Les outils de gestion des fichiers texte sous Unix sont des commandes de base de tous les jours:

Sous Unix et Linux pour imprimer tout le contenu dans un fichier

cat filename.txt

ou

more filename.txt

ou

less filename.txt

Pour les dernières lignes

tail filename.txt

Pour les premières lignes

head filename.txt
9
Abhishek

Une option consiste à utiliser more

par exemple. more file.txt

Cependant, il n'a pas toutes les fonctionnalités ajoutées par less.
Un exemple simple est que vous ne pouvez pas revenir en arrière dans la sortie. En général, il a été dépassé par moins - qui a été nommé en plaisantant parce que

moins est plus

4
Michael Durrant

J'utilise toujours $ less "your file here", car il est très simple, fournit une commande interactive intégrée grep et vous offre une interface facile à utiliser que vous pouvez faire défiler avec les touches fléchées.

(Il est également inclus sur presque tous les systèmes * nix)

3
SG60

Si c'est un gros fichier et que vous souhaitez rechercher une partie spécifique, vous pouvez utiliser

 cat filename | grep text_to_search -ni 

Vous pouvez également utiliser un éditeur Vim plus interactif (ou un éditeur vi si vous n'avez pas Vim):

 vim filename
Or
 vi filename

Vim/vi est un excellent éditeur, peut également être utilisé comme lecteur en "Mode Normal" ou en utilisant l'option -R, il possède de nombreuses fonctionnalités qui vous aideront à parcourir le fichier.

2

Utilisez la commande cat pour afficher le contenu du nom de fichier. nom de fichier du chat

Utilisez la commande vim pour modifier le fichier. nom de fichier vim

1
Edward Shen