为列中的所有元素附加 0x 和逗号值

为列中的所有元素附加 0x 和逗号值

我有一个包含 2 列的文件,每列有近 100 个元素。

00000 4f000
00001 3df56
00002 4fdea
..... .....

我想将文件的内容更改为:

0x00000, 0x4f000;
0x00001, 0x3df56;
........ ........

我可以运行任何 unix 命令来更改为上述格式吗?

答案1

您可以使用单行awk

awk '$1="0x"$1",",$2="0x"$2";"' file

答案2

看一下这个 :)

$ cat file.txt
00000 4f000
00001 3df56
00002 4fdea

代码:

$ sed -r 's/^([0-9]+)\s+([[:alnum:]]+)/0x\1, 0x\2;/' file.txt

或者 :

$ perl -pe 's/^(\d+)\s+([[:alnum:]]+)/0x$1, 0x$2;/' file.txt

输出:

0x00000, 0x4f000;
0x00001, 0x3df56;
0x00002, 0x4fdea;

答案3

最简单的 Sed 解决方案,除了您所显示的内容之外,不需要任何其他输入:

sed -En 's/^(.....) (.....)$/0x\1, 0x\2;/p'

不包含正好十一个字符(其中中间一个是空格)的行将从输出中省略。

相关内容