我在shell脚本中有以下for循环
test1
test2
test3
我得到的输出如下。
grep test12345 /home/ptc/storage/**'ABCD'**/apache/$curr_year/logs/access.log* | grep GET > /tmp/test.access.txt
我想将test2从上面的结果处理到下面的脚本代替' ABCD'
<tbody>
<?php
mysql_data_seek($result, 0);
while ($row = mysql_fetch_assoc($result)) {
?>
<tr>
<?php
foreach($row as $key => $value){
echo "<td>";
echo $value;
echo "</td>";
}
?>
<td><a href="/DeletePerson.php?id=<?php echo $result['Person ID']; ?>" class="btn btn-danger">Delete</a></td>
</tr>
<?php } ?>
</tbody>
我尝试了所有选项,但由于我不熟悉shell脚本,因此无法成功。
答案 0 :(得分:0)
忽略其他地方的许多错误并专注于你想要改变的一段代码:
for i in "${arr[@]}"; do
val=$(echo "$i" | head -n1 | cut -d "." -f1)
grep test12345 /dev/null "/home/ptc/storage/$val/apache/$curr_year/logs/access.log"* \
| grep GET
done > /tmp/test.access.txt
注意:
"$i"
,"/path/with/$val/"*
等(*
for i in $prop_value
会有完全相同的(错误)行为;使用arr
无需购买任何东西。如果您希望使用arr
来提高正确性,请正确填充:read -r -a arr <<<"$prop_value"
/dev/null
的额外grep
可确保无论匹配数量多少,其行为都是一致的;否则,仅当存在多个匹配的日志文件时才会显示文件名,否则不显示。