如果你有一个文本文件,文件中每一行都有一个无用字符,你怎么删除这个无用字符呢?
有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
结果:
awk
使用awk命令完成同样的功能,要比sed命令稍微复杂。
$ cat test.c |awk -F? '{print $1}' > temp.txt && mv temp.txt test.c
上面命令使用 ? 做为分隔符,然后输出前面的部分。
从上面的例子可以看出使用sed更简洁。