我在bash中生成了一個html表格,將它存儲在一個變量中,並且需要用html替換html中的特定區域。用bash sed編輯html文件
sed -r -i~ -e "s/(var filesystem=)(.*)/var filesystem=\"$filesystem_table\";/g" ./Html/xmon/xmon.html
基本上我已經變成了DF -h慶典輸出到一個表,並希望用JavaScript的幫助下進入我的頁面插入。
我所有的嘗試返回
sed: -e expression #1, char 40: unterminated `s' command
有沒有更簡單的方法來做到這一點?
的$ filesystem_table值是:(修正)
<tr> <td> Filesystem </td> <td> Size </td> <td> Used </td> <td> Avail </td> <td> Use% </td> <td> Mounted </td> </tr> <tr> <td> /dev/sda1 </td> <td> 94G </td> <td> 80G </td> <td> 9.3G </td> <td> 90% </td> <td>/</td> </tr> <tr> <td> none </td> <td> 2.0G </td> <td> 328K </td> <td> 2.0G </td> <td> 1% </td> <td> /dev </td> </tr> <tr> <td> none </td> <td> 2.0G </td> <td> 2.4M </td> <td> 2.0G </td> <td> 1% </td> <td> /dev/shm </td> </tr> <tr> <td> none </td> <td> 2.0G </td> <td> 372K </td> <td> 2.0G </td> <td> 1% </td> <td> /var/run </td> </tr> <tr> <td> none </td> <td> 2.0G </td> <td> 0 </td> <td> 2.0G </td> <td> 0% </td> <td> /var/lock </td> </tr> <tr> <td> /dev/sda3 </td> <td> 198G </td> <td> 184G </td> <td> 15G </td> <td> 93% </td> <td> /media/Zeta </td> </tr> <tr> <td> /dev/mmcblk0p1 </td> <td> 7.7G </td> <td> 477M </td> <td> 7.2G </td> <td> 7% </td> <td> /media/NIKON </td> </tr>
解決了!部分地感謝Ignacio Vazquez-Abrams。
這就是我的 'DF -h' 的outpout轉換爲HTML表:
df -h > /tmp/filesystem
echo "<table>" > /tmp/filesystem_table
cat /tmp/filesystem | while read line
do
echo "<tr>" >> /tmp/filesystem_table
echo "<td>" >> /tmp/filesystem_table
echo $line | awk '{ print $1; }' >> /tmp/filesystem_table
echo "</td>" >> /tmp/filesystem_table
echo "<td>" >> /tmp/filesystem_table
echo $line | awk '{ print $2; }' >> /tmp/filesystem_table
echo "</td>" >> /tmp/filesystem_table
echo "<td>" >> /tmp/filesystem_table
echo $line | awk '{ print $3; }' >> /tmp/filesystem_table
echo "</td>" >> /tmp/filesystem_table
echo "<td>" >> /tmp/filesystem_table
echo $line | awk '{ print $4; }' >> /tmp/filesystem_table
echo "</td>" >> /tmp/filesystem_table
echo "<td>" >> /tmp/filesystem_table
echo $line | awk '{ print $5; }' >> /tmp/filesystem_table
echo "</td>" >> /tmp/filesystem_table
echo "<td>" >> /tmp/filesystem_table
echo $line | awk '{ print $6; }' >> /tmp/filesystem_table
echo "</td>" >> /tmp/filesystem_table
echo "</tr>" >> /tmp/filesystem_table
done
echo "</table>" >> /tmp/filesystem_table
filesystem_table="$($_CMD cat /tmp/filesystem_table)"
filesystem_table="$($_CMD echo $filesystem_table)"
sed -r -i~ -e "s!(var filesystem=)(.*)!var filesystem=\"$filesystem_table\";!g" ./Html/xmon/xmon.html
'$ filesystem_table'的價值是什麼?或者,如果你不是想把它變成一個變量,那麼可以一箭雙鵰:將你的外部雙引號改爲單引號,你不必逃避內部的雙引號。 – Cascabel 2010-12-16 21:14:17
'<\td>'?真? – 2010-12-16 21:25:24
我的不好 - 我想我需要將它們全部轉義出來,然後在javascript中使用它來實際工作? – 2010-12-16 21:31:20