2017-04-21 2 views
0

私はawkを使ってHTMLテーブルのセルの色を変更しようとしています。理想的には、awkを使って、 "Bob"の後の "tg-6k2t"のN番目のインスタンス(スクリプトの前半から渡された変数)を探し出し、カラーコードを "tg-b5xm"に変更することができます。これは多くの人の名前を持つ巨大なH​​TMLテーブルです。awkを使って特定のパターンの後にN番目のフィールドを変更する

<tr> 
    <td class="tg-6k2t">Bob</td> 
    <td class="tg-6k2t"></td> 
    <td class="tg-6k2t"></td> 
    <td class="tg-6k2t"></td>  
    <td class="tg-6k2t"></td> 
    <td class="tg-6k2t"></td> 
</tr> 

私の所望の出力は、次のように

<tr> 
    <td class="tg-6k2t">Bob</td> 
    <td class="tg-6k2t"></td> 
    <td class="tg-6k2t"></td> 
    <td class="tg-b5xm"></td>  
    <td class="tg-6k2t"></td> 
    <td class="tg-6k2t"></td> 
</tr> 
+1

あなたの質問には、そのサンプル入力の出力を追加してください。 – Cyrus

答えて

1

あなたがAwk文でそれを行うことができますでしょうから6番目のラインを意味し、以下のように出力を生成

awk -v count=6 '/"tg-6k2t".*Bob/{x=count}x--==1{sub(/tg-6k2t/,"tg-b5xm")}1' file 

行一致Bobの場合は、都合のよいように変数を変更してください。

<tr> 
    <td class="tg-6k2t">Bob</td> 
    <td class="tg-6k2t"></td> 
    <td class="tg-6k2t"></td> 
    <td class="tg-6k2t"></td> 
    <td class="tg-6k2t"></td> 
    <td class="tg-b5xm"></td> 
</tr> 
+1

@エドモートン:ありがとうエド!更新された – Inian

+0

これは完璧です、ありがとうございます! – dne202

関連する問題