
unimplemented.txt
次の名前のファイルがあります。
verify-sdh-t1-satop-traffic-over-mpls-1for1-xxx,./TDM/SDH.xls
verify-sdh-t1-satop-traffic-over-mpls-1plus1-xxx,./TDM/SDH.xls
whileループを使用して上記のファイルを読み込み、次のものを/TDM/SDH_check.xls
含む出力ファイルを生成するにはどうすればよいですか?
verify-sdh-t1-satop-traffic-over-mpls-1for1-xxx
こうしてみましたが、無限ループに陥ります。
while IFS="," read dummy casename tpname < "unimplemented.txt"
do
echo "$casename" > basename $tpname|sed -e 's/\..\+$//'
done
答え1
スクリプトにいくつかの問題があるようです。
あなたはなぜですか
read dummy casename tpname
?この行では、読み取りは3つのフィールドを待っていますが、2つのフィールドのみが必要です。を作成すると、
echo "$casename" > basename $tpname|sed -e 's/\..\+$//'
次のことが行われます。- (代わりに)
$casename
にエコーされます。basename
$basename
sed
echo出力に代替を適用するだけです。大丈夫です。
- (代わりに)
使用する
>
たびに上書きされますecho
。追加するには>>
。
以下は私に合うようですが、これが欲しいのかどうかはわかりません。
gcolangelo@NEO-L196:/tmp/pouet$ cat unimplemented.txt
verify-sdh-t1-satop-traffic-over-mpls-1for1-xxx,./TDM/SDH.xls
verify-sdh-t1-satop-traffic-over-mpls-1plus1-xxx,./TDM/SDH.xls
verify-sdh-t2-satop-traffic-over-mpls-1for1-xxx,./TDM/SDG.xls
verify-sdh-t2-satop-traffic-over-mpls-1plus1-xxx,./TDM/SDG.xls
gcolangelo@NEO-L196:/tmp/pouet$ cat unimplemented.txt | while IFS=',' read casename tpname ; do echo "$casename"|sed -e 's/\..\+$//' >> $tpname ; done
gcolangelo@NEO-L196:/tmp/pouet$ cat TDM/SDH.xls
verify-sdh-t1-satop-traffic-over-mpls-1for1-xxx
verify-sdh-t1-satop-traffic-over-mpls-1plus1-xxx
gcolangelo@NEO-L196:/tmp/pouet$ cat TDM/SDG.xls
verify-sdh-t2-satop-traffic-over-mpls-1for1-xxx
verify-sdh-t2-satop-traffic-over-mpls-1plus1-xxx