使用 Linux 过滤器更改文件格式
我是 shell 脚本编程的新手,因此需要您的帮助来编写高效的代码。
输入文件格式:
60 00 00 00
00 90 32 20
00 00 00 00
.....
输出文件格式:
6000 0000 0090 3220 0000 0000 0000 0000
0000 0000 0000 0001 0000 0000 0000 0000
......
我想将输入文件转换为输出文件,反之亦然,因此双方都需要代码。
代码应该在 Linux shell 脚本中,使用 awk、sed、grep 等过滤器,使用管道和 Linux 重定向运算符...
限制
最好单行,否则越少越好。尽可能多的线路
I am new to this shell-script programming so need your help to write a code which is efficient one.
Input file format :
60 00 00 00
00 90 32 20
00 00 00 00
.....
Output File format:
6000 0000 0090 3220 0000 0000 0000 0000
0000 0000 0000 0001 0000 0000 0000 0000
......
I want to convert input file to output file and vice-versa so need code for both sides.
Code should be in linux shell script using filters like awk,sed,grep,etc using pipe and linux redirection operators...
Limitation
A single line would be best otherwise as much lesser no. of lines as possible
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是这个问题的一个相当简单的解决方案。
我不确定您是否需要在 8 个块后插入新行,但如果是这样,像
s/(.*){32}/$1\n/g
这样的正则表达式应该可以解决问题。Here's a rather simple solution to this problem.
I'm not sure if you need to insert a new line after 8 blocks, but if so, a regex like
s/(.*){32}/$1\n/g
should do the trick.在 bash 中它可以非常简单:
如果您需要换行符:
或者,使用 awk
It can be very simple in bash:
If you need the newlines:
Or, with awk