我有一個包含以下內容的 test.txt 檔案
100001
100003
100007
100008
100009
我正在嘗試遍歷文本檔案并在每個檔案中附加 .xml。
前任:
100001.xml
100003.xml
100007.xml
100008.xml
100009.xml
我嘗試了不同的變體
while read p; do
echo "$p.zip"
done < test.txt
但它列印出來像這樣奇怪
.xml01
.xml03
.xml07
.xml08
.xml09
uj5u.com熱心網友回復:
.xml在洗掉 CRLF(如果存在)時在每行末尾附加 a 。
- 使用
sed和 bash:
#!/bin/bash
sed -E $'s/\r?$/.xml/' test.txt
- 與
awk:
awk -v suffix='.xml' '{sub(/\r?$/,suffix)}1' test.txt
在 bash 回圈中使用它:
#!/bin/bash
while IFS='' read -r filename
do
printf '%q\n' "$filename"
done < <(
awk -v suffix='.xml' '{sub(/\r?$/,suffix)}1' test.txt
)
或者在純 shell 中做整個事情:
while IFS='' read -r filename
do
fullname="${filename%\r}.xml"
printf '%s\n' "$fullname"
done < test.txt
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/451829.html
上一篇:期望if條件與ssh密碼
下一篇:什么是參考命令?
