我遇到了问题,我确信这是一件非常简单的事情,但是,我似乎无法看到它。
所以我试图遍历一个数组,使用每个元素的内容做一些,然后使用该元素作为文件进行重定向。
fullProc=$(grep "WNDP_Server" $1 | grep -v "#" | cut -f 2 | grep -v /nwsys/release/conf/save" | cut -d '/' -f5)
for i in "${fullProc[@]}"
do
echo "$host$HostName" > "$i"
grep "WNDP_Server: * " $1 | grep -v "#" | cut -f 2-3 | grep -v "/nwsys/release/conf/save" | grep -w "$i" | cut -f 2 >> "$i"
grep "WNDP_Port:" $1 | grep -v "#" | grep -w "$i" | cut -f 3 >> "$i"
ProcName=$(grep "WNDP_Server: * " $1 | grep -v "#" | cut -f 2 | grep -v "/nwsys/release/conf/save" | cut -d '/' -f5 | grep -w "$i" | cut -d '.' -f1)
echo "Process: $ProcName" >> "$i"
grep -w "FilterMode:" $1 | grep -v "#" | cut -f 2-3 | grep -w "$i" | cut -f2 >> "$i"
grep -w "Filter:" $1 | grep -v "#" | cut -f 2-3 | grep -w "$i" | cut -f2 >> "$i"
done
我得到的是一个包含所有正确信息的文件。而不是多个文件,每个文件都有相应的信息。
如果您需要我澄清一下,请告诉我。
$ i是有问题的文件名。
答案 0 :(得分:1)
您应该像这样分配fullProc
:
fullProc=($(grep ...))
请注意(...)
周围的额外$(grep ...)
。
否则grep
的所有匹配都将在一个字符串中。