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 に渡す方法に行き詰まっています (ここでこの件に関するすべての投稿を読みましたが、おそらく私は愚かで、どれもうまくいきません)。
誰かがこれに光を当てることができれば、特に行が「読み取り」で始まる場合は、本当に感謝しています。
どうもありがとう。