-1

我有一个 txt 文件(大小从 10M 到 1G),例如:

1 2
2 3
4 5
5 6
7 6
1 9
...

我需要做

1 2 1
2 3 1
4 5 1
5 6 1
7 6 1
1 9 1
...

我应该使用什么命令?这需要多久?我正在使用 Mac。我猜它和Linux一样吗?

非常感谢!

4

3 回答 3

2

awk

$ awk '$0=$0" 1"' file
1 2 1
2 3 1
4 5 1
5 6 1
7 6 1
1 9 1

它添加" 1"$0,其中包含整行。然后它会打印所有内容,因为默认的 awk 操作是{print $0}.

sed

$ sed 's/$/ 1/' file
1 2 1
2 3 1
4 5 1
5 6 1
7 6 1
1 9 1

它将每个$(行尾)替换为" 1",以便它最终附加" 1"到每一行。

这需要多久?

它应该很快。要量化它,time请在您的命令之前附加:

$ time awk ...
于 2013-10-04T15:42:47.927 回答
2

使用 sed,将每行的末尾替换为附加文本:

sed 's/$/ 1/' file

如果您需要将修改保存回原始文件,请使用

sed -i 's/$/ 1/' file
于 2013-10-04T15:43:36.310 回答
1
awk '{print $0,1}' file

会做的。

于 2013-10-04T15:47:00.880 回答