tse --Introduction à l'éditeur de flux de texte en Python

introduction

Cet article est l'article du 12ème jour du Shell Script Advent Calendar 2015.

Ici, l'outil de formatage de texte "tse" par Python créé par M. Ishimoto @atsuoishimoto Je voudrais présenter.

Environnement d'exécution

Qu'est-ce que la tsé?

Vous pouvez comprendre les détails en regardant les diapositives annoncées au PyCon JP 2015 de cette année. tse - Utilitaire de formatage de texte par Python

Très simplement Qu'est-ce que la tsé? "On dit que Python ne convient pas pour une seule ligne, mais je veux toujours faire du traitement de texte ou Python." En réponse à la demande "Outils CLI pour effectuer des opérations telles que ** sed ** et ** awk ** en Python" est.

Vous pouvez l'installer avec pip.

pip install tse

Bons points de tse

Après cela, je pense qu'il est plus rapide de voir le traitement réel, je vais donc en couvrir certains.

Remettez en question le problème de la session d'étude sur l'art des coquillages

Le 17e Junk Hall est une session d'étude que l'art de la coquille a repris

https://blog.ueda.asia/?p=6454

Q1

Les données suivantes

$ cat data1
a 1
b 4
a 2
a 3
b 5

Convertissons-le comme suit.

a 1 2 3
b 4 5

Si vous avez la capacité disponible, essayez le format JSON suivant.

{a:[1,2,3],b:[4,5]}

répondre

$cat data1 | tse -b 'd={"a": "", "b": ""}' -s '' 'd[L1] = d[L1] + " " + L2' -e 'for k, v in sorted(d.items()):print(k + v)'
a 1 2 3
b 4 5
$cat data1 | tse -m json -b 'd={"a": [], "b": []}' -s '' 'd[L1].append(int(L2))' -e 'print(json.dumps(sorted(d.items())))'
[["a", [1, 2, 3]], ["b", [4, 5]]]

18e Voulez-vous mettre de l'ail? Session d'étude d'art de la coquille

https://blog.ueda.asia/?p=6877

Q1 Dans le fichier suivant, la première colonne est la clé et la deuxième colonne est la valeur, mais recherchez une clé qui a à la fois les valeurs «Oton» et «Okan».

$ cat text 
 001 Oton
 001 Oton
 001 Akan
 002 Okan
 003 Oton
 003 Yakan
 003 Okan
 004 Okan
 005 Oton
 005 Mikan
 005 Akan

répondre

$uniq text | tse -s 'Oton|Okan' 'print L1' | uniq -d
003

Session d'étude du 3e anniversaire de Shell Art

https://blog.ueda.asia/?p=7146

Q2 Deux nombres naturels

$ echo 1 4

Après la sortie avec un écho comme

4
3
2
1
2
3
4

Essayez de remplir les nombres entre les deux.

répondre

$echo 1 4 | tse -s '' 'for s in range(int(L1), int(L2)+1)[::-1]: print(s)' 'for s in range(int(L1)+1, int(L2)+1): print(s)'

en conclusion

J'ai essayé d'utiliser tse à peu près, mais il est devenu facile d'écrire un one-liner avec la syntaxe de Python à laquelle je suis habitué! J'ai l'impression que j'ai pu m'habituer au terrain à une ligne que j'avais peur d'éviter ^^

Le tour de demain est @zayarwinttun!

Recommended Posts

tse --Introduction à l'éditeur de flux de texte en Python
Parler avec Python [synthèse vocale]
[Introduction à Python] Comment utiliser la classe en Python?
Introduction aux vecteurs: Algèbre linéaire en Python <1>
Introduction à la vérification de l'efficacité Chapitre 1 écrit en Python
Texte de cluster en Python
Introduction à la vérification de l'efficacité Chapitre 3 écrit en Python
J'ai écrit "Introduction à la vérification des effets" en Python
Introduction au langage Python
Traitement de texte avec Python
Introduction à OpenCV (python) - (2)
Introduction à la vérification de l'efficacité Chapitre 2 écrit en Python
Introduction à l'algèbre linéaire avec Python: Décomposition A = LU
Python Open CV a essayé d'afficher l'image sous forme de texte.
Traitement de texte UTF8 avec python
Introduction à Python Django (2) Win
Pour vider stdout en Python
Connectez-vous au site Web en Python
Introduction à la communication série [Python]
Modèles de conception en Python: introduction
[Introduction à Python] <liste> [modifier le 22/02/2020]
Introduction à Python (version Python APG4b)
Une introduction à la programmation Python
Comment développer en Python
Introduction à Python pour, pendant
Publier sur Slack en Python
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
Introduction à la vérification des effets Rédaction des chapitres 4 et 5 en Python
Convertir un fichier Excel en texte en Python à des fins de comparaison
[Présentation de l'application Udemy Python3 +] 58. Lambda
[Présentation de l'application Udemy Python3 +] 31. Commentaire
[Python] Comment faire PCA avec Python
Introduction à la bibliothèque de calcul numérique Python NumPy
Entraine toi! !! Introduction au type Python (conseils de type)
[Introduction à Python3 Jour 1] Programmation et Python
GOTO en Python avec Sublime Text 3
Convertir Markdown en PDF en Python
Comment collecter des images en Python
[Introduction à Python] <numpy ndarray> [modifier le 22/02/2020]
Introduction à Python Hands On Partie 1
[Introduction à Python3 Jour 13] Chapitre 7 Chaînes de caractères (7.1-7.1.1.1)
Comment utiliser SQLite en Python
[Introduction à Python] Comment analyser JSON
[Présentation de l'application Udemy Python3 +] 56. Clôture
Dans la commande python, python pointe vers python3.8
[Introduction à Python3 Jour 14] Chapitre 7 Chaînes de caractères (7.1.1.1 à 7.1.1.4)
Introduction à Protobuf-c (langage C ⇔ Python)
[Présentation de l'application Udemy Python3 +] 59. Générateur
Essayez de calculer Trace en Python
Extraire du texte d'images avec Python
[Introduction à Python3 Jour 15] Chapitre 7 Chaînes de caractères (7.1.2-7.1.2.2)
[Introduction à Python] Utilisons les pandas
Trier les gros fichiers texte en Python
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
6 façons d'enchaîner des objets en Python
Comment utiliser PubChem avec Python
[Introduction à Python] Utilisons les pandas
[Introduction à l'application Udemy Python3 +] Résumé
Lire et écrire du texte en Python