解析简单的文本文件并在bash脚本中集成内容

时间:2013-09-14 19:30:22

标签: bash parsing sed awk

我想自动使用以下内容解析文本文件:

car 12345 W
train 54321 D

要集成到新的bash文件中。之后的内容应该是这样的:

curl http://example.com/?vehicle=car&number=12345&period=W
curl http://example.com/?vehicle=train&number=54321&period=D

我的问题是我现在真的不知道如何使用,或使用哪个程序,sed,awk等。

我该怎么做?

3 个答案:

答案 0 :(得分:5)

这可能是最有趣的答案:假设您的文件是file.txt,然后执行此操作:

printf 'curl http://example.com/?vehicle=%s&number=%s&period=%s\n' $(<file.txt)

有:

  • 是100%纯粹的bash,
  • 没有明确的循环
  • 是最简短的答案
  • 非常有趣

希望这有助于:)

答案 1 :(得分:4)

试试这个:

while read vehicle number period ; do
    echo curl http://example.com/\?vehicle="$vehicle"\&number="$number"\&period="$period"
done < input.txt

答案 2 :(得分:2)

也许使用sed将URL参数与其他部分交错。从您发布的样本中猜测:

sed 's/\([a-z]*\) \([0-9]*\) \([A-Z]\)/curl http:\/\/example.com\/?vehicle=\1\&number=\2\&period=\3/'