我正在嘗試創建一個字串,例如(file1.txt、file2.txt、file3.txt)。所有這 3 個檔案名都在一個檔案中。
ls file*.txt > lstfiles.txt
while read filename; do
filename =$line","
done <lstfiles.txt
這將回傳我的輸出:
file1.txt,file2.txt,file3.txt,
我怎樣才能找到回圈的最后一次迭代,所以我不會在最后添加另一個逗號。
所需輸出:
file1.txt,file2.txt,file3.txt
uj5u.com熱心網友回復:
對于您的用例,我寧愿擺脫 while 回圈并像這樣組合sed和tr命令:
sed -e '$ ! s/$/,/g' lstfiles.txt | tr -d '\n'
其中sed,命令用逗號替換除最后一行之外的每一行結尾,并且tr命令洗掉換行符。
uj5u.com熱心網友回復:
可能避免ls在腳本中使用。
printf '%s,' file*.txt |
sed 's/,$/\n/'
假設您sed識別\n為換行符,并處理沒有最終換行符的輸入。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/425930.html
上一篇:如何在柏樹中制作可鏈接的命令?
