gpt4 book ai didi

awk - 如何使用 sed 替换特定模式的内容而不丢失信息?

转载 作者:行者123 更新时间:2023-12-02 18:28:25 25 4
gpt4 key购买 nike

我有一个包含大量数据的文本文件。我能够使用 sed 准确提取我想要的内容;但我只需要替换我搜索的特定模式,而不会丢失文件中的其他内容。

我正在使用以下 sed 命令;但我需要更换;但不知道该怎么做。

cat file.txt | sed -rn '/([a-z0-9]{2}\s){6}/p' > output.txt

sed 搜索以下模式:## ## ## ## ## ##,但我想像这样替换该模式:######-######。

cat file.txt | sed -rn '/([a-z0-9]{2}\s){6}/p' > output.txt
Output:

1 | ec eb b8 7b e3 c0 47
9 | 90 20 c2 f6 3d c0 1/1/1
25 | 00 fd 45 3d a7 80 31

Desired Output:

1 | ecebb8-7be3c0 47
9 | 9020c2-f63dc0 1/1/1
25 | 00fd45-3da780 31

Thanks

最佳答案

根据显示的示例,请尝试执行 awk 程序。

awk '
BEGIN{ FS=OFS="|" }
{
$2=substr($2,1,3) substr($2,5,2) substr($2,8,2)"-" substr($2,11,2) substr($2,14,2) substr($2,17,2) substr($2,19)
}
1
' Input_file

解释:简单的解释是将 FSOFS 设置为 | 对于 awk 程序。然后在第二个字段中使用 awk 的 substr 函数根据 OP 所示的示例仅保留所需的值。其中 substr 函数适用于打印特定索引/位置数值的方法(例如:需要打印从哪个值到哪个值)。然后将所需的值保存到第二个字段本身并打印当前行。

关于awk - 如何使用 sed 替换特定模式的内容而不丢失信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69771892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com