我如何grep / awk这个?

时间:2014-01-26 04:01:57

标签: linux awk grep

我对Linux很陌生,我还在学习这些命令。我想要做的就是格式化我的.txt文件。

以下是我的文件:

hello hello
goodbye goodbye
random random
example example
last last

我想要做的就是删除空格并用分号替换它。

例如:

hello:hello
goodbye:goodbye
random:random
example:example
last:last

我不确定什么命令可以完成这项任务,我很确定它是grep还是awk。如果有人能帮我解决这个问题会很棒。谢谢,所有的帮助表示赞赏。

3 个答案:

答案 0 :(得分:2)

sed是执行此任务的最简单工具:

sed 's/ /:/' infile > outfile

答案 1 :(得分:2)

使用tr(将所有空格转换为冒号)

tr ' ' ':'

使用sed(用冒号替换所有空格)

sed 's/ /:/g'

使用awk(更改输出字段分隔符,然后为每行重新计算/输出$0

awk 'BEGIN{OFS=":"}{$1=$1;print}'

使用Perl(标准-pne read-eval-print循环替换字符):

perl -pne 's/ /:/g'

使用C过滤器程序,因为编程Q& A站点: - )

// Call with: progName <infile

#include <stdio.h>
int main (void) {
    int ch;
    while ((ch = getchar()) != EOF) {
        if (ch == ' ') ch = ':';
        putchar (ch);
    }
    return 0;
}

可能有很多其他方法可以做到这一点,但我可能会选择tr实用程序,因为它是最简单的,具有最清晰的意图。

答案 2 :(得分:1)

您需要使用流编辑器sed以冒号替换空格,如下所示:     sed -i的/ /:/'文件名 其中filename是您的文件。