sed 或 awk,更新第一列数据

发布于 2024-09-15 17:31:05 字数 299 浏览 4 评论 0原文

我上周读到了有关 sed 的内容,现在,我使用 sed 从文件中提取一些内容,这很好, 现在,我想将第一列中的数据更改为行号

1 3 3 0 0 0 1 3 35 34
16 3 3 0 0 0 34 35 33 19
31 3 3 0 0 0 19 33 71 68
46 3 3 0 0 0 68 71 72 69
61 3 3 0 0 0 69 72 73 70
76 3 3 0 0 0 70 73 67 53

,并将第一列更改为 1 到 6,如何在 awk 或 sed 中执行此操作? 最好的, 乌穆特

I read about sed last week and now, I do some extraction from a file using sed, that is fine,
Now, I would like to change the data in the first column to the line number say

1 3 3 0 0 0 1 3 35 34
16 3 3 0 0 0 34 35 33 19
31 3 3 0 0 0 19 33 71 68
46 3 3 0 0 0 68 71 72 69
61 3 3 0 0 0 69 72 73 70
76 3 3 0 0 0 70 73 67 53

and change the first column to 1 to 6, how can I do this in awk or sed?
Best,
Umut

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

嘿咻 2024-09-22 17:31:05

使用 awk

awk '$1=NR' file

use awk

awk '$1=NR' file
夜雨飘雪 2024-09-22 17:31:05

对于这种情况,awk 无疑是合适的。我使用 sed 完成此任务的最简单方法是采用以下形式。

cat file | sed "s/^[0-9]*//g;=;" | sed -n "N;s/\n//g;p"

其中第一个表达式删除第一个数字,并从读取管道打印行号 =

第二个 sed 表达式一次检索两行并删除换行符 \n

这不可能通过两个连续的表达式来完成,因为 = 命令直接将行号写入标准输出,而无法捕获。所以我不得不再次进行另一个 sed 调用。

Definitely awk for this scenario. The easiest way I could accomplish this with sed was in the following form.

cat file | sed "s/^[0-9]*//g;=;" | sed -n "N;s/\n//g;p"

Where the first expression deletes the first number, and prints the line number = from the read pipe.

The second sed expression retrieves two lines at a time and removes the newline \n.

This could have not been done through two consecutive expressions because the = command directly writes the line number to the standard output, which cannot be captured. So I had to recur to another sed call.

隔纱相望 2024-09-22 17:31:05

你可以尝试这样的事情
回显“1 3 3 0 0 0 1 3 35 34”| sed 's/^1 /A /g'

将 A 更改为您需要的数字,我假设第一列位于行的开头

You can try something like this
echo "1 3 3 0 0 0 1 3 35 34 " | sed 's/^1 /A /g'

Change A to the Number you need and i assume the first column is in the beginning of the line

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文