我有一個bash腳本,我使用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
哦,雙引號!讓我更新我的答案。 –