给定一个文件,我想以八进制格式列出它包含的所有字节,每个字节在自己的行中。
为什么会这样:
#!/bin/sh --
newline='
'
od -v -A n -t o1 -- /tmp/file | \
sed -e "s/ /\\${newline}/g" | \
sed -e '/^$/d'
而不是这个:
#!/bin/sh --
newline='
'
od -v -A n -t o1 -- /tmp/file | \
sed -e "s/ /\\${newline}/g" -e '/^$/d'
为什么我必须两次分别调用 sed 才能完成工作?
作为参考, 的输出od
,未经进一步处理,可能类似于以下内容:
047 124 167 141 163 040 142 162 151 154 154 151 147 054 040 141
156 144 040 164 150 145 040 163 154 151 164 150 171 040 164 157
166 145 163 012 011 104 151 144 040 147 171 162 145 040 141 156
144 040 147 151 155 142 154 145 040 151 156 040 164 150 145 040
167 141 142 145 072 012 101 154 154 040 155 151 155 163 171 040
167 145 162 145 040 164 150 145 040 142 157 162 157 147 157 166
145 163 054 012 011 101 156 144 040 164 150 145 040 155 157 155
145 040 162 141 164 150 163 040 157 165 164 147 162 141 142 145
056 012