私は9000行以上のテキストを含む100以上のファイルを持っています。いずれかのファイルのプレビュー抽出物は、次のようになります。shellscript:一致する文字列の間に数値を加算する(アップカウント)
<productname>kidscar1</productname>
<productid>98</productid>
<productname>kidscar2</productname>
<productcolor>yellow</productcolor>
<productid>101</productid>
<productname>kidscar3</productname>
<productsize>xxl</productsize>
<productcolor>green</productcolor>
<productid>104</productid>
<productname>kidscar4</productname>
<productcolor>bleu</productcolor>
<productsize>xl</productsize>
<producttype>electric</producttype>
<productid>103</productid>
私は別のプロダクトIDから始まるIDの生成物を(再arange)を変更し、自動的含む次の行のためにこれをカウントアップしようとしています製品番号。
私はforループで使用できるシェルスクリプトソリューションを考えていました。
**sh idscript.sh oldfile.txt 1000 productid > newfile.txt**
結果:
<productname>kidscar1</productname>
<productid>1000</productid>
<productname>kidscar2</productname>
<productcolor>yellow</productcolor>
<productid>1001</productid>
<productname>kidscar3</productname>
<productsize>xxl</productsize>
<productcolor>green</productcolor>
<productid>1002</productid>
<productname>kidscar4</productname>
<productcolor>bleu</productcolor>
<productsize>xl</productsize>
<producttype>electric</producttype>
<productid>1003</productid>`
私はそれが次のコマンドを使用して、sedの中で行全体を交換することが可能だということを知っている:
**sed "s/<productid>100</productid>=.*/<productid>=<productid>1000</productid>/g"**
しかし、私はこの作業を行うことができますどのように取得するには上記の結果は?これを達成するための他の(より単純な)方法がある場合、私もそれを聞いて好きです!
ニース。 productid文字列がRSとして使用され、すべての数字が削除され、インクリメントされたPID開始文字が1000から書き込まれますか? – SriniV
いいえ、 'pid'は数値を含む変数です。既存の数値をその値に置き換えてポストインクリメントしています。私はRSで何もしていない。 –
インフォア・エドのためのThanx、まさに私が探していたもの! –