
$grep -rlZ "$pattern" /path/of/file/ | xargs -0 grep -rZ "$pattern" | sed -e 's~.*=\(.*\)~<tr><td>\1</td></tr>~;1i\<html><table border="1">' -e '$a\</table>\n</html>`;
如何通過更改上述 sed 命令來獲得預期的輸出
預期產出
<html><table border="1">
<tr><td>Aastha</td>
<td>Rohini</td>
<td>Delhi</td>
<td>20</td>
<td>India</td>
</tr>
<tr>
<td>Aastha</td>
<td>Dwarka</td>
<td>Delhi</td>
<td>20</td>
<td>India</td>
</tr>
</table>
</html>
檔案中的資料示例:
name==ABC
City==Rohini
State==Delhi
Age==18
Country==India
uj5u.com熱心網友回復:
當您嘗試對許多類似檔案執行命令時,使用find將更適合實作預期的輸出
$ cat file1
name==ABC
City==Rohini
State==Delhi
Age==18
Country==India
$ cat file2
name==DEF
City==Rohini
State==Delhi
Age==22
Country==India
$ find /path/to/file -type f -name 'file*' -exec sed -e '/name\|city\|country\|state\|age/I{1s~.*=\(.*\)~<tr><td>\1</td>~;s~.*=\(.*\)~<td>\1</td>~;$a\</tr>' -e '}' {} \; | sed -e '1i\<html><table border="1">' -e '$a\</table>\n</html>'
<html><table border="1">
<tr><td>ABC</td>
<td>Rohini</td>
<td>Delhi</td>
<td>18</td>
<td>India</td>
</tr>
<tr><td>DEF</td>
<td>Rohini</td>
<td>Delhi</td>
<td>22</td>
<td>India</td>
</tr>
</table>
</html>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/490593.html
上一篇:使用capybara搜索記錄
下一篇:Bash檔案變數問題
