0

1 つのディレクトリで数百のファイルを処理する bash/awk スクリプトを作成しています。それらはすべて「localprefs」という名前サフィックスを持っています。目的は、各ファイルから 2 つの値を抽出することです ("" で囲まれています)。また、同じファイル名を使用したいのですが、名前の接尾辞は付けません。

これが私がこれまでにしたことです:

#!/bin/bash

for file in *  # Traverse all the files in current directory.
   read -r name < <(awk ' $name=substr(FILENAME,1,length(FILENAME)-10a) END {print name}' $file) #get the file name without suffix and pass to bash. PROBLEM TO SOLVE!
   echo $name # verify if passing works.
   do
   awk  'BEGIN { FS = "\""} {print $2}' $file #this one works fine to extract two values I want.
   done

exit 0

私は使用できます

awk '{print substr(FILENAME,1,length(FILENAME)-10)}' を使用してサフィックスなしでファイル名を抽出しますが、出力ファイル名として使用する変数として bash に渡す方法に行き詰まっています (ここでこの件に関するすべての投稿を読みましたが、おそらく私は愚かで、どれもうまくいきません)。

誰かがこれに光を当てることができれば、特に行が「読み取り」で始まる場合は、本当に感謝しています。

どうもありがとう。

4

2 に答える 2