如何动态设置回声变量到Sed文本更改

时间:2015-10-02 19:59:48

标签: bash random awk sed echo

我有一个echo函数,从random.txt

输出一个随机行
echo $var4 | sed -n $((1+$RANDOM%`wc -l random.txt | cut -f 1 -d ' '`))p random.txt

每次echo $ var4都会给出random.txt文件的随机行

现在我有另一个文件playlist.txt

在我设置的文件播放列表中

a=$random
b=$random
c=$random
d=$random

依旧......

我想要的是用动态回声的不同输出替换a,b,c,d上的$ random

我试过

sed -i s/'$random'/$echo $var4 | sed -n $((1+$RANDOM%`wc -l random.txt | cut -f 1 -d ' '`))p random.txt/ playlist.txt

但它不起作用,

任何建议?

1 个答案:

答案 0 :(得分:0)

cat <<'HEAD' > playlist.txt
<?xml version="1.0" encoding="UTF-8"?>
<smil title="liveongroup">
<head></head>
<body>
<stream name="liveongroup"></stream>
<playlist name="default rotation" playOnStream="liveongroup" repeat="true" scheduled="2015-08-28 09:38:00">
HEAD

shuf random.txt | sed -e 's/^/<video length="-1" src="mp4:/' \
                      -e 's/$/" start="0"><\/video>/' >> playlist.txt

echo "</playlist></body></smil>" >> playlist.txt