2

パラメータ展開とbashの算術式を組み合わせることは可能ですか? たとえば、ここで評価するためにワンライナーを実行できlineNumますnumCharか?

echo "Some lines here
Here is another
Oh look! Yet another" > $1

lineNum=$( grep -n -m1 'Oh look!' $1 | cut -d : -f 1 )  #Get line number of "Oh look!"
(( lineNum-- ))                                         # Correct for array indexing

readarray -t lines < $1

substr=${lines[lineNum]%%Y*}                            # Get the substring "Oh look! "
numChar=${#substr}                                      # Get the number of characters in the substring
(( numChar -= 2 ))                                      # Get the position of "!" based on the position of "Y"

echo $lineNum
echo $numChar

> 2
  8

つまり、1 行の式の別の文字の位置に基づいて、文字列内の 1 つの文字の位置を取得できますか?

4

1 に答える 1