输入一个
我有一个约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