私はfor
ループを使用して数字のリストを生成しています(1つ増えています)。forループを繰り返してカスタマイズした文字列を作成する方法
echo
とtee
を組み合わせて使用しています。
私はsed
を使って、数字の「リスト」(ファイルとして入力)を取り、それをフォーマットします。
私はこのリスト(テキストファイル)を生成するのにfor
ループを使用しているので、私の文字列を作成するためのより良い効率的な方法があります(それはループされているので追加されています)最初にファイルに書き込みますか?
はここに私のコードです:つまり
#!/usr/local/bin/bash
if [[ $# != 3 ]]; then
echo "Usage: ./crIPRange.sh <octet> <start#> <ending#>" 2>&1
echo "Example: ./crIPRange.sh 10.1.2 100 150" 2>&1
exit 1
fi
_octet="$1"
_startIP="$2"
_IPList="List1.out"
_IPListFinal="List2.out"
for ((c=$2; c<=$3; c++))
do
echo "${_octet}.$c" | tee >> ${_IPList}
sed -E 's/^(.*)$/"\1"/' ${_IPList} | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/,/g' | tee > ${_IPListFinal}
done
、私は必ずしもリストとしてファイルに書き込むのステップを必要としないと思っていますか?
最終的には、出力ファイルが2つあり、最終出力が必要です。 printf
のようなものを使用しますか?
私はスクリプトを覚えているので、それはいつものようにハックでした。入力を気に入ってください。悪い習慣を指摘し、代わりの解決法を提供してくれてありがとう。 – noober
出力を二重引用符で囲むには?: "" 1.2.3.10 "、" 1.2.3.11 "、" 1.2.3.12 "' – noober
ああ、二重引用符!私の答えを更新させてください。 –