Textdatei jede Zeile zum Befehl in bash

Okay, also habe ich ein pythonscript, das so argumentiert

& ./myscript.py argumentishere 

Was du tun willst, liest eine Textdatei, die Multipolzeilen von Text hat und für jede Zeile meinen Befehl so ausführen

 & ./myscript.py line1 & ./myscript.py line2 & ./myscript.py line3 ect.ect.ect 

Wie kann ich das in einem Bash-Skript erreichen?

  • Python - Entfernen Sie das letzte Zeichen in der Datei
  • Entfernen Sie bestimmte Zeilen aus einer großen Textdatei in Python
  • Annotate heatmap mit Wert aus Pandas dataframe
  • Arbeiten mit, Vorbereitung von Beutel-von-Wort-Daten für Regression
  • Extrahieren von Text aus HTML-Datei mit Python
  • Wie kann ich doppelte Zeilen aus einer Datei entfernen?
  • Python 3 Tkinter - Erstellen von Text Widget für 100% Breite mit Raster
  • Wie kann ich die numerischen Daten in Python richtig ausrichten?
  • 4 Solutions collect form web for “Textdatei jede Zeile zum Befehl in bash”

    Während Sie dies mit einem Bash-Skript erreichen können, ist wahrscheinlich der einfachere Weg, das xargs Dienstprogramm zu verwenden.

     xargs -L 1 ./myscript.py <inputfile 

    Der Bash-Weg wäre:

     while read line do ./myscript $line done <inputfile 
     #!/bin/bash cat input | while read line do ./myscript.py $line done 

    Du brauchst auch Hinzufügen #!/usr/bin/env python in den Kopf von myscript.py und chmod ausführbare Eigenschaft zu myscript.py

    Wenn ich Sie wäre, würde ich das Python-Skript ändern, um einen Dateinamen als Argument zu nehmen und das zu tun, was ich mit jeder Zeile wünsche.

     import sys file = open(sys.argv[1]) for line in file: #do your thing here 

    Hast du das versucht?

     while IFS= read -r line; do ./myscript.py "$line" done < file 
    Python ist die beste Programmiersprache der Welt.