輸入一個
我有一個約9000行的索引,每行有一到兩個中文字母。
任何方式我想重寫每一行,所以它只會在最後與空間相同。例如:
原指數:AB
在新的指標:AB
這是我寫的劇本,但它並沒有這樣做只是把空行每個項目後,在工作索引,沒有空間,我錯過了什麼?
這是艱難的代碼:
rm new_index.txt
for line in $(cat index.txt)
do
echo "$line \t" >> new_index.txt
done
輸入一個
我有一個約9000行的索引,每行有一到兩個中文字母。
任何方式我想重寫每一行,所以它只會在最後與空間相同。例如:
原指數:AB
在新的指標:AB
這是我寫的劇本,但它並沒有這樣做只是把空行每個項目後,在工作索引,沒有空間,我錯過了什麼?
這是艱難的代碼:
rm new_index.txt
for line in $(cat index.txt)
do
echo "$line \t" >> new_index.txt
done
試試這個
while IFS= read -r line ; do
printf '%s \n' "$line"
done <index.txt> new_index.txt
這正是保持每個行但每次換行前添加一個空格。
注:printf
沒有特殊的,你也可以說
echo "$line "
,並得到同樣的效果。重要的是你如何閱讀文件。
嘗試用sed的
sed -e 's/$/ /' index.txt > new_index.txt
你也可以做到就地即更新做相同的文件
sed -e 's/$/ /' -i index.txt
通過備份
sed -e 's/$/ /' -i.bak index.txt
不bashy,但它是什麼sed是!
sed 's/$/ \t/' index.txt > new_index.txt
至於bash中,你應該有一個「-e」的回聲,使之明白,\ t是製表符,而不是一個反斜槓和T。
rm new_index.txt
for line in $(cat index.txt)
do
echo -e "$line \t" >> new_index.txt
done