1

次のようなテキストを見つけて置き換えるには、シェル スクリプトが必要です。

For each line in a file
  find equation mark "="
  remove everything up to the equation mark on that line and replace it with the string cuts[Counter] where Counter counts how many times such substitutions have been made.

そのようなスクリプトを使い始めるのを手伝ってくれる人はいますか?

4

3 に答える 3

5

「最初の方程式のマークまで...」を意味し、=を保持したい場合は、次のようにする必要があります。

awk '{c += sub(/[^=]+=/,"cuts["c+0"]=") }1' file
于 2012-11-22T17:00:49.187 に答える
1

純粋な bash の場合:

counts=0
while IFS= read -r line; do
    if [[ "$line" =~ "=" ]]; then
        echo "${counts}${line#*=}"
        counts=$((counts+1))
    fi
done <infile

これにより「=」が除外されることに注意してください。必要に応じて、ehco ステートメントに再度含めることができます。

于 2012-11-22T17:03:10.013 に答える
0

これがそのためのperlワンライナーです:

perl -plne 'if($.==1){$count=1}if(/=/){$_=~s/[^\=]*[=]/cut[$count]/g;$count++}' temp
于 2012-11-23T06:10:57.240 に答える