文本文件每行在bash中命令

时间:2013-11-02 11:52:26

标签: python arrays bash text

好吧所以我有一个pythonscript接受这样的参数

& ./myscript.py argumentishere

你想要做的是读取一个文本文件,该文件具有多个文本行,并为每一行执行我的命令,如此

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

如何在bash脚本中实现这一目标

4 个答案:

答案 0 :(得分:1)

虽然您可以使用bash脚本实现此目的,但可能更简单的方法是使用xargs实用程序。

xargs -L 1 ./myscript.py <inputfile

bash的方式是:

while read line
do
    ./myscript $line
done <inputfile

答案 1 :(得分:1)

#!/bin/bash

cat input | while read line
do
    ./myscript.py $line
done

你还需要在myscript.py和chmod可执行文件头部添加#!/usr/bin/env python到myscript.py

答案 2 :(得分:1)

如果我是你,我会修改python脚本,将文件名作为参数,并按照每行做我想做的事。

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

答案 3 :(得分:0)

你试过这个吗?

while IFS= read -r line; do
    ./myscript.py "$line"
done < file