Solarisでこのコマンドを実行すると問題が発生します。
grep -Ev "(^#|^EBM_SERVER|^$)" ${EBM_CONF} | awk -F, '{print $2"|"}' | tr -d "\n" | sed 's/|$//g'
次のエラーメッセージが表示されます。
egrep:illegal option -- E
usage: egrep [-bchilnsv] [-e exp] [-f file] [string] [file] ...
egrep:syntax error
答え1
Solarisのデフォルト環境では、古いユーティリティを入手します。
より近代的なユーティリティを入手するには更新する必要があります$PATH
。
PATH=`getconf PATH`:$PATH export PATH
これにより、80年代のユーティリティではなく90年代のユーティリティが提供されます(過言ではありません...)。
そうすれば、あなたgrep
の意志はもう少し標準のように振る舞いますgrep
。
egrep
または代わりに使用できますgrep -E
。
しかし、ここでawk
はの上位セットなので、egrep
まったくそうする必要はありません。egrep
< "$EBM_CONF" awk -F, '! /^#|^EBM_SERVER|^$/ {print $2"|"}' |
tr -d "\n" |
sed 's/|$//g'
に行をリンクするには、を|
使用することをお勧めしますpaste
。最後の2つのコマンドをに置き換えるpaste -s -d '|' -
か、以下を使用してすべての操作を実行できますawk
。
< "$EBM_CONF" awk -F, '! /^#|^EBM_SERVER|^$/ {printf "%s", sep $2; sep = "|"}'