红联Linux门户
Linux帮助

Linux:移除文件中每行的最后一个字符

发布时间:2016-06-21 15:45:20来源:topspeedsnail.com作者:斗大的熊猫

如果你有一个文本文件,文件中每一行都有一个无用字符,你怎么删除这个无用字符呢?

有n多种方法可以删除文件中每行的最后一个字符。我在本文中介绍两种方法 – sed和awk。


假设我有文本文件如下(要移除行尾的 ?):

test.c:

#include <stdio.h>?
?
int main(int argc, char* argv[])?
{?
printf("Hello World!\n");?
return 0;?
}?


sed

让我们去掉C代码中的 ?,首先使用sed。

下面命令把文件尾的任意字符替换为空,注意,不是空格。

$ sed -i 's/.$//' test.c

结果:

Linux:移除文件中每行的最后一个字符


awk

使用awk命令完成同样的功能,要比sed命令稍微复杂。

$ cat test.c |awk -F? '{print $1}' > temp.txt && mv temp.txt test.c

上面命令使用 ? 做为分隔符,然后输出前面的部分。

Linux:移除文件中每行的最后一个字符


从上面的例子可以看出使用sed更简洁。


本文永久更新地址:http://www.linuxdiyf.com/linux/21723.html