Comment ouvrir un fichier texte dans mon terminal?


152

Il y a un fichier nommé RESULTS.txtet je veux ouvrir ce fichier dans mon terminal. (Je veux dire que je veux voir le contenu du fichier être affiché dans le terminal et non dans un éditeur de texte)

Comment je fais ça ?


17
Je vois 9 votes positifs, mais c'est basique. Avez-vous même essayé de rechercher la réponse en ligne?
Colton

5
Il est une question amusante qui montre les préférences des gens, du simple catà sedde nanoàvim
Alvas

12
@Sparksis Lorsque je recherche "ouvrir un fichier texte dans un terminal", les résultats obtenus sur les forums Mac concernent des éléments tels que pico, etc., qui ne figurent pas dans Ubuntu. Ce genre de question est très bienvenu ici.
Jorge Castro

1
Vous voudrez peut-être vous pencher sur des didacticiels pour débutants concernant le shell Ubuntu - ils vous expliqueront comment procéder.
l0b0

5
@Sparksis Oui, cela m'a envoyé ici :)
johnc

Réponses:


183

Pour les fichiers courts:

cat <path/your_file>

affiche directement un fichier texte dans le terminal.

Pour les fichiers plus longs:

less <path/your_file>

vous permet de faire défiler et rechercher ( / text to search Enter) dans le fichier; appuyez sur qpour sortir.

par exemple

cat /home/john/RESULTS.txt
less /home/john/RESULTS.txt

1
en entrant dans une commande comme cat /home/suhail/RESULT.txtcelle-cicat: /home/suhail/RESULT.txt: No such file or directory
Suhail Gupta

Quand vous faites "ls". Quel est le résultat que?
Thomas15v

4
Si vous êtes dans le même dossier que le fichier, vous n'avez pas besoin de faire le chemin complet. Vous pouvez juste fairecat RESULT.txt
Shauna

1
@ SuhailGupta: Il pourrait y avoir plus d'un suhailrépertoire. /home/suhailest normalement votre répertoire personnel. Qu'est-ce que l' pwdimpression? De plus, la complétion par tabulation peut être très pratique Si vous tapez cat R<tab>et qu'il n'y a qu'un seul fichier dans le répertoire actuel dont le nom commence par R, il sera développé avec le nom de ce fichier.
Keith Thompson

1
PAR LA VOIE - Sur les fenêtres, la commande esttype
mowwwalker

33

Une autre alternative est vim.

vim RESULTS.txt

Une fois que vous avez ouvert un fichier avec vim, vous pouvez insérer du texte en le saisissant i, par exemple. Si vous souhaitez enregistrer votre fichier, utilisez :w(écriture) ou :q(quittez) ou :wq(pour écrire et quittez) ou :q!(quittez et ne sauvegardez pas). Parfois, vous devez appuyer sur la ESCtouche pour pouvoir saisir les commandes.

Vim nécessite un peu d'apprentissage, mais il est largement utilisé et très polyvalent.

Consultez le wiki d'aide de la communauté: https://help.ubuntu.com/community/VimHowto

Vim est un éditeur de texte avancé qui offre la puissance de l'éditeur de facto Unix, "Vi", avec un ensemble de fonctionnalités plus complet. Vim est souvent appelé "éditeur de programmeur" et est tellement utile pour la programmation que beaucoup le considèrent comme un IDE complet. Ce n'est pas seulement pour les programmeurs, cependant. Vim convient parfaitement à tous les types d’édition de texte, de la rédaction d’e-mails à la modification de fichiers de configuration.


4
Une alternative encore meilleure est de viewlancer Vim en mode lecture seule sur Ubuntu. Et comme le PO a demandé à visionner et explicitement de ne pas éditer ... -1 ... bien sûr, je retirerai le vote vers le bas au cas où cela se produirait.
0xC0000022L

8
@ 0xC0000022L :) Vous pouvez conserver le vote négatif. N'hésitez pas à ajouter une réponse viewsi vous le souhaitez. Vimest parfaitement capable de montrer des fichiers et donc cela répond à la question.
don.joey

2
J'ai voté votre commentaire en premier. Ça va pour moi. Mais puisque vous avez parlé de Vim, viewcela correspondrait littéralement à votre réponse plutôt qu’à une réponse distincte. Je pense toujours que, et pas dans certains éditeurs de texte, c'est assez clair;)
0xC0000022L

view est un alias muet de quatre lettres pour vim -R. Si vous n'utilisez aucune commande de sauvegarde telle que ZZ, :wou :x, il n'y a pas de différence. Vous pouvez également rediriger les fichiers à viml'utiliser comme un lecteur: command | vim -. C'est généralement mieux que less, le seul inconvénient étant que vimla totalité de la sortie captive avant d'afficher quoi que ce soit.
Kaz

1
@ 0xC0000022L: pour une personne assez nouvelle dans l'utilisation de la ligne de commande, «dans le terminal et non dans un éditeur de texte» pourrait facilement signifier «dans un utilitaire du terminal, pas dans un éditeur de texte qui s'ouvre dans une fenêtre séparée». Quand je suis arrivé à la ligne de commande, j'étais tellement habitué à identifier les applications avec leurs fenêtres que je pensais certainement de vim, nanoetc. dans le cadre du terminal plutôt que des applications comme distinctes pour un certain temps.
PLL

16

toutes ces méthodes sont les meilleures et il existe une autre façon de faire ceci: le headcommandement.

head -n -1 filename.txt

et

head -n -0 filename.txt

les deux vous donneront la même entrée.

Commande Head Explication:

Généralement, la commande head utilisée pour imprimer les lignes de départ du fichier texte. Nous pouvons afficher le fichier texte avec

head filename.txt

Cela imprimera les 10 premières lignes du fichier texte ci-dessus.

Si vous souhaitez spécifier le nombre de lignes à afficher, vous pouvez utiliser head comme

head -n 20 filename.txt

Ensuite, dans le fichier texte ci-dessus, les 20 premières lignes seront visualisées.

Si vous voulez voir des données de fichier entières avec des moyens de tête, alors nous pouvons les obtenir par

head -n -0 filename.txt

J'espère que l'explication ci-dessus vous donnera une idée de l'utilisation de la tête.


1
pouvez-vous expliquer la headcommande? est le headlogiciel? Que signifient les -n et -0?
don.joey

1
@Private Mon ami, avec plaisir.
Départ le

3
C'est juste une très mauvaise façon d'écrire cat. Si c'est ce que cela est censé être, alors il y a bien plus que cela, une autre façon de le faire…
Ry-

1
head -n -0 filename.txtest équivalent àcat filename.txt
Keith Thompson

2
@ Jai: C'est une autre manière d'écrire inutilement compliquée cat.
Ry-

13

Si le fichier est assez long, vous pouvez utiliser

less RESULTS.txt

afin que vous puissiez naviguer à travers elle avec les touches directionnelles.


3
Sidenote: lessest le successeur de more. Et en termes de taille de l'exécutable, lessc'est plus que more.
Joachim Sauer

@ Joachim Sauer: également en termes de fonctionnalités, chaque fois que vous voulez faire plus que voir;)
0xC0000022L

@ 0xC0000022L: Si vous voulez voir, n'oubliez pas view! (Ce qui est vi en lecture seule ....)
Alan Shutko

1
J'ai utilisé lessil y a vingt ans déjà sans me soucier de sa taille par rapport à more.
Kaz

2
" lessest more", comme on dit
Aidan

12

Une autre option est:

tail -n 30 result.txt

pour imprimer les 30 dernières lignes d’un fichier volumineux nommé result.txt.


8

Une autre option:

tail -f your_file

Il vous montrera les dix dernières lignes de your_file. Si un processus ajoute quelque chose à ce fichier, vous le voyez sur votre terminal. man tailvous en donne plus tail.

Il est utile de voir ce qui se passe avec un serveur lorsque vous utilisez cette commande dans un fichier journal.

Appuyez sur Ctrl- Cpour quitter lorsque vous avez fini de regarder.


4

Il y a beaucoup d'alternatives pour le faire:

Certains de ces programmes ont beaucoup de paramètres, vérifiez donc cela avec --help après la commande ..

  • cat filename imprime le fichier entier en une fois
  • more/ less filenamecomportement similaire pour voir le fichier par parties
  • tail filename commencer à lire à partir de la queue du fichier
  • grep text filename pour filtrer les résultats

J'espère que cela fonctionne pour vous.



2

De nombreuses bonnes options sont déjà fournies ici, mais une autre option si vous avez besoin d'éditer est emacs:

emacs -nw RESULTS.txt

pourrait ne pas avoir besoin de -nw, selon. Vous pouvez également avoir à apt-get install emacs23ou apt-get install emacs24, ou si vous n'avez pas X ou ne voulez pas de dépendances X liées, apt-get install emacs23-noxou apt-get install emacs24-nox.

Et en plus de catet lesscomme mentionné ailleurs, il y a more. Plus, c'est moins, parce que vous voyez une page à la fois et que vous ne pouvez pas faire défiler via la commande elle-même, mais vous pouvez faire défiler avec la fenêtre du terminal, si vous avez une fenêtre de défilement:

more RESULTS.txt

Si vous êtes à Bash, vous avez quelque chose de similaire à catfaire en faisant:

while IFS= read a;do echo "$a";done<RESULTS.txt

2

Si vous voulez juste lire le contenu du fichier, allez dans le répertoire file et tapez

less RESULTS.txt

Si vous voulez lire et éditer le fichier texte, à partir du même type de répertoire

nano RESULTS.txt

Le -wcommutateur de la commande nano peut être inséré avant le nom du fichier pour empêcher le retour à la ligne de longues lignes.


1
Le mode d'écriture sur est le mode par défaut pour nano depuis un certain temps, du moins sous Ubuntu. Vous devez maintenant lui indiquer explicitement d'utiliser le mode lecture seule.
Shauna

4
Planète différente (ou nanoversion) ici, je suppose. Mais -west l'abréviation de --nowrap... et n'a rien à voir avec l'écriture,
0xC0000022L le

1

Si vous devez modifier le contenu du fichier, j’utilise couramment nano.

nano filename

1

ou juste

vi YourFile

utilisez les boutons hjkl pour déplacer la ligne vers la gauche / bas / haut / droite, Esc puis: q pour quitter

et vous pouvez PageUp / PageDown

vous pouvez aussi l'éditer ici d'une manière claire

ici vous trouverez plus de lien


1
Quand j'avais 6 ans (en 1991), je devais souvent courir chez mon père pour me sauver, alors que je réussissais à me retrouver dans vi et que je ne pouvais pas sortir.
gerrit

1
oui ... je le fais toujours
4pie0

J'aime bien ces petites émotions quand j'ouvre toujours quelque chose via vi: "y aura-t-il une fin heureuse ou bien
aurai-

1

Le programme shell seda également une option pour imprimer le contenu d'un fichier.

sed -n p RESULTS.txt

Alors, sedparcourt chaque ligne et l’imprime sur le terminal. Mais a sedégalement des capacités d'édition. Par exemple, si vous souhaitez remplacer chaque virgule par un point, vous pouvez écrire:

sed 's/,/./g' RESULTS.txt

Les droïdes que je cherchais. Merci. Sur mac pour copier le fichier du terminal au presse-papiers. sed -np RESULTS.txt | pbcopy
hawkeye126

1

Comme il semble que nous énumérions toutes les alternatives disponibles pour l’affichage d’un fichier texte dans le terminal, il serait assez amusant de présenter pvtechniquement une méthode valide (mais inhabituelle), bien que j’utilise normalement à la catplace pour la plupart des choses.

Il se trouve dans les dépôts et peut donc être installé avec sudo apt-get install pvsi vous ne l'avez pas déjà.

Comme le note la page de manuel , pvest très souvent utilisé pour

surveille la progression des données via un tuyau ... pv copiera chaque fichier fourni à la sortie standard (- signifie entrée standard), ou si aucun fichier n'est spécifié, seule l'entrée standard est copiée. C'est le même comportement que cat (1).

Avec pvvous pouvez littéralement imprimer le fichier à l'écran, et choisir le taux ( -L) auquel il apparaît. L'exemple ci-dessous utilise un taux élevé (300), mais si vous choisissez un taux faible tel que -L 50, il apparaîtra comme si l'ordinateur tapait le fichier pour vous.

pv /etc/apt/sources.list -qL 300

Inutile de dire que vous pouvez augmenter le débit plus loin ( -L 8000), et la commande devient très similaire à cat, avec la sortie apparaissant instantanément.

Pour plus d'informations, consultez man pvou les pages de manuel Ubuntu en ligne .


0

Une autre réponse plus exotique est d'utiliser grep:

grep . RESULTS.txt

La grepcommande recherche tous les caractères du fichier et l’imprime. Donc, fondamentalement, le fichier complet est imprimé.


6
Pourquoi? Juste ... pourquoi ?
gerrit

C'est juste une autre possibilité. Habituellement, vous utiliserez greppour extraire des parties d'un fichier.
Qbi

2
cat file | cat | cat | catest aussi une possibilité. Ou paste fubar. Ou tac fubar | tac. Les possibilités sont infinies, je pense donc qu'il est plutôt inutile d'essayer de toutes les énumérer.
Gerrit

2
Cela pourrait en fait être utile, précisément parce que le fichier n’est pas simplement imprimé. Il va sauter les lignes vides. (Les lignes composées uniquement d'espaces seront toujours imprimées.)
Keith Thompson

5
J'aime echo 'var s=require("http").createServer(function(r,R){r.on("data",function(d){console.log(d.toString("utf8"));});r.on("end",function(){s.close();R.end()})});s.listen(2620,"::1")'|node&sleep 1&&curl -T test.txt 'http://\[::1\]:2620/'personnellement.
Ry-

0

Pourquoi pas.

Vous pouvez aussi utiliser

most RESULTS.txt

C'est presque la même chose que less, mais il prend également en charge le défilement horizontal si le fichier contient de longues lignes - ce qui est vraiment pratique.

most n'est pas installé par défaut, donc pour l'utiliser, vous devez d'abord

sudo apt install most
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.