在文件的最后一行添加一个点

时间:2018-05-15 08:20:53

标签: bash awk

我想在文件的最后一行(最后一个字符)中添加一个点(句号)

文件:

AAAAAA              21,28,22-23,35,24-27,29-30,37,31-34,36,54,38-45,47,46,48-53,
AAAAAA              71,55-70,72-78,80,79,81-93,96,94-95,97-98,100,99,101-103,
AAAAAA              122,104-114,118,115-117,119-121,123-124,140,125-130,148,
AAAAAA              1649-1650,1652-1667,1669-1853

所需的输出

AAAAAA              21,28,22-23,35,24-27,29-30,37,31-34,36,54,38-45,47,46,48-53,
AAAAAA              71,55-70,72-78,80,79,81-93,96,94-95,97-98,100,99,101-103,
AAAAAA              122,104-114,118,115-117,119-121,123-124,140,125-130,148,
AAAAAA              1649-1650,1652-1667,1669-1853**.**

我的代码:

sed '$d' file > tmp1
tail -1 file > tmp2
sed -i 's/$/./' tmp2

cat tmp1 tmp2 > output

我使用上面的代码得到了所需的输出 有没有更有效的方法来解决这个问题?

2 个答案:

答案 0 :(得分:5)

告诉sed只改变最后一行。

sed '$s/$/./'

答案 1 :(得分:0)

您可以使用echo,仅当您的最后一行尚未包含回车时才会有效

echo -n "." >> file