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

  • Schnellste Weg, um niedrige Werte im Array auszuschalten?
  • Numpy Array Division - nicht unterstützter Operand Typ (s) für /: 'list' und 'float'
  • Zählen von benachbarten Zellen in einem numpy Array
  • Extrahieren Sie Array-Indizes, die einen bestimmten Wert enthalten
  • Erzeugen von Zufallszahlen mit gewichteten Wahrscheinlichkeiten in Python
  • Python und numpy: subtrahieren Zeile für Zeile ein 2-dim-Array aus einem 1-dim-Array
  •  & ./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.