![为列中的所有元素附加 0x 和逗号值](https://linux22.com/image/119825/%E4%B8%BA%E5%88%97%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E5%85%83%E7%B4%A0%E9%99%84%E5%8A%A0%200x%20%E5%92%8C%E9%80%97%E5%8F%B7%E5%80%BC.png)
我有一个包含 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'
不包含正好十一个字符(其中中间一个是空格)的行将从输出中省略。