ch.shにはbash変数がたくさんあります。
$ cat ch.sh
BBG=`tput setab 0`
RBG=`tput setab 1`
GBG=`tput setab 2`
.
.
.
$ cat abc
asd
bsd
csd
.
.
.
各変数を宣言せずにawkからアクセスしたいですawk -v
。どのような方法がありますか?私はこれを試しました
source ch.sh
awk `
#Let s[asd]="B"
ta=s[$0] "BG" #s is awk array sowehow created by other file
#colour print of line in abc
` abc
いくつかの方法を提案してください。
ベストアンサー1
このエラーが発生したと思うようですが、実際に持っているのはファイルのペアだけなtag="value"
ので、ch.sh
次のことを試してみてください。
$ echo 7 |
awk '
NR==FNR {
tag = val = $0
sub(/[[:space:]]*=.*/,"",tag)
gsub(/^[^=]+=[[:space:]]*"?|"?[[:space:]]*$/,"",val)
ch[tag] = val
next
}
{
tag = "var2"
print ch[tag], $0
}
' ch.sh -
zsd 7
これが必要なものではない場合は、質問を編集して何をしたいかを示すbash + awkコードの最小限の例を提供してください。