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

  • Drucken Sie ein Integer-Array als Hexadezimalzahlen
  • Finden und löschen aus mehrdimensionalen numpy Array
  • Effiziente Berechnung von Cosinus in Python
  • Wo ein numpy Array gleich einem Wert einer Liste von Werten ist
  • Wie erstelle ich ein numpy Array aus String?
  • Wie finde ich alle unbenutzten und ersten fehlenden Nummer in einem Array (in Python)?
  •  & ./myscript.py line1 & ./myscript.py line2 & ./myscript.py line3 ect.ect.ect 

    Wie kann ich das in einem Bash-Skript erreichen?

    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.