我有這樣的價值觀
B146XYZ、G638XYZ、G488xBC
我必須撰寫一個 bash 腳本,當它看到逗號時,它必須洗掉逗號并添加 7 個空格,如果它看到逗號和一個空格或只是空格(沒有標點符號),則它必須添加 7 個空格才能使所有的它們固定長度。
if [[ $row = *’,’* ]]
then
first= “${ row%%,*}”
echo “${first } “
我嘗試過但無法理解如何為其余標準添加條件,特別是在 G488xBC 等單值條件下掙扎
uj5u.com熱心網友回復:
怎么樣:
sed -E 's/[, ] / /g' file
或者像這樣的東西將列印一個填充表,只要沒有欄位超過 13 個字符:
awk -F '[,[:space:]] ' \
'{
for (i=1; i<NF; i ) {
printf("%-14s", $i)
}
print $NF
}'
或者在純 bash 中做同樣的事情:
while IFS=$', \t' read -ra vals; do
last=$((${#vals[@]} - 1))
for ((i=0; i<last; i )); do
printf "%-14s" "${vals[i]}"
done
printf '%s\n' "${vals[last]}"
done
uj5u.com熱心網友回復:
newrow="${row//,/ }"
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/350248.html
