我试图远离所有运行时临时文件。我能够用运行时变量替换所有这些变量,但是当我使用带变量的命令时,一个命令让我很难。
rimco内容:包含文件位置
/home/bim
/home/ram
/home/gps
/home/hdr
/home/pal
bim内容:包含一组数字
28800,1536,14400,768
11100,12312,902,321
3044,1536,1290,334
3044,1536,1290,334
11100,12312,902,321
28800,1536,14400,768
目标是在找到我正在寻找的数字时为变量$output
添加前缀。该行存储在$output
中,前缀为$dte
dte="available"
for f in $(cat rimco)
do
out=`grep 768 $f`
output+=`echo -e "\n$out"| sed "s/^/$dte,/"`
done
好吧,结果是没有吸引力,dte内容,到处都是
available,
available,28800,1536,14400,768
available,28800,1536,14400,768available,
available,28800,1536,14400,768
available,28800,1536,14400,768available,
available,28800,1536,14400,768
available,28800,1536,14400,768available,
available,28800,1536,14400,768
available,28800,1536,14400,768available,
available,28800,1536,14400,768
available,28800,1536,14400,768
目标是得到这个
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
知道怎么解决这个问题吗?
谢谢
这是我对许多文件的回答。使用额外的变量结果连接和grep来摆脱空行:
dte="available"
result=""
for f in $(cat rimco)
do
out=`grep 768 $f`
output=`echo -e "$out" | sed "s/^/$dte,/"`
result="$result\n$output"
done
echo -e "$result" | grep -v "^$"
返回:
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
available,28800,1536,14400,768
如果你将grep更改为一个衬里它可以工作(删除for循环):
dte="available"
files=$(cat rimco)
out=`grep 768 $files`
output=`echo -e "$out" | sed "s/^.*:/$dte,/"`
echo -e "$output"
sed现在用$ dte字符串替换文件名(grep的结果)加冒号: