在ubuntu上使用脚本#/bin/sh
时,一切似乎都很好,但现在在红帽上使用与#/bin/bash
相同的脚本,这部分会产生问题。
awk '{
for (i = NF - p - 2; i < NF - 2; i++)
printf "%s", ($i (i < NF - 2 - 1 ? OFS : ORS))
}' p="$_padlen" RS= ORS='\n' decrypt.txt > pad.txt
也是这一个......
awk '{
for (i = NF - l - p - 2; i < NF - p - 2; i++)
printf "%s", ($i (i < NF - p - 2 - 1 ? OFS : ORS))
}' l="$_length" p="$_padlen" RS= ORS='\n' decrypt.txt > prot_n_data.txt
假设$padlen=1
和$length=13
这些是相应的输出......
[root@localhost scripts]# cat decrypt.txt
00 15 00 15 00 0d dc ff 61 62 63 64 0a 00 01 11
最后三个字节是00 01 11
。 00
是填充,01
是填充长度。
[root@localhost scripts]# cat pad.txt
0a
[root@localhost scripts]# cat prot_n_data.txt
00 15 00 15 00 0d dc ff 61 62 63 64 0a 00 01 11 00 15 00 15 00 0d dc ff
61 62 63 64
虽然所需的输出是......
# cat pad.txt
00
# cat prot_n_data.txt
00 15 00 15 00 0d dc ff 61 62 63 64 0a
完全没有线索......请帮助我。
或者Atleast建议我一些替代......
编辑: *
这是另一个示例文件,其中建议的解决方案假设为$_padlen=3
和$_length=1159
而无法解决。
[root@localhost scripts]# cat decrypt.txt
00 17 00 17 04 87 5d c5 74 68 69 73 20 69 73 20
73 61 6d 70 6c 65 20 64 61 74 61 20 74 6f 20 73
65 6e 64 0a 77 65 20 73 68 6f 75 6c 64 20 63 6f
6e 63 65 6e 74 72 61 74 65 20 6f 6e 20 69 74 2e
0a 74 68 69 73 20 69 73 20 73 61 6d 70 6c 65 20
64 61 74 61 20 74 6f 20 73 65 6e 64 0a 77 65 20
73 68 6f 75 6c 64 20 63 6f 6e 63 65 6e 74 72 61
74 65 20 6f 6e 20 69 74 2e 0a 74 68 69 73 20 69
73 20 73 61 6d 70 6c 65 20 64 61 74 61 20 74 6f
20 73 65 6e 64 0a 77 65 20 73 68 6f 75 6c 64 20
63 6f 6e 63 65 6e 74 72 61 74 65 20 6f 6e 20 69
74 2e 0a 74 68 69 73 20 69 73 20 73 61 6d 70 6c
65 20 64 61 74 61 20 74 6f 20 73 65 6e 64 0a 77
65 20 73 68 6f 75 6c 64 20 63 6f 6e 63 65 6e 74
72 61 74 65 20 6f 6e 20 69 74 2e 0a 74 68 69 73
20 69 73 20 73 61 6d 70 6c 65 20 64 61 74 61 20
74 6f 20 73 65 6e 64 0a 77 65 20 73 68 6f 75 6c
64 20 63 6f 6e 63 65 6e 74 72 61 74 65 20 6f 6e
20 69 74 2e 0a 74 68 69 73 20 69 73 20 73 61 6d
70 6c 65 20 64 61 74 61 20 74 6f 20 73 65 6e 64
0a 77 65 20 73 68 6f 75 6c 64 20 63 6f 6e 63 65
6e 74 72 61 74 65 20 6f 6e 20 69 74 2e 0a 74 68
69 73 20 69 73 20 73 61 6d 70 6c 65 20 64 61 74
61 20 74 6f 20 73 65 6e 64 0a 77 65 20 73 68 6f
75 6c 64 20 63 6f 6e 63 65 6e 74 72 61 74 65 20
6f 6e 20 69 74 2e 0a 74 68 69 73 20 69 73 20 73
61 6d 70 6c 65 20 64 61 74 61 20 74 6f 20 73 65
6e 64 0a 77 65 20 73 68 6f 75 6c 64 20 63 6f 6e
63 65 6e 74 72 61 74 65 20 6f 6e 20 69 74 2e 0a
74 68 69 73 20 69 73 20 73 61 6d 70 6c 65 20 64
61 74 61 20 74 6f 20 73 65 6e 64 0a 77 65 20 73
68 6f 75 6c 64 20 63 6f 6e 63 65 6e 74 72 61 74
65 20 6f 6e 20 69 74 2e 0a 74 68 69 73 20 69 73
20 73 61 6d 70 6c 65 20 64 61 74 61 20 74 6f 20
73 65 6e 64 0a 77 65 20 73 68 6f 75 6c 64 20 63
6f 6e 63 65 6e 74 72 61 74 65 20 6f 6e 20 69 74
2e 0a 74 68 69 73 20 69 73 20 73 61 6d 70 6c 65
20 64 61 74 61 20 74 6f 20 73 65 6e 64 0a 77 65
20 73 68 6f 75 6c 64 20 63 6f 6e 63 65 6e 74 72
61 74 65 20 6f 6e 20 69 74 2e 0a 74 68 69 73 20
69 73 20 73 61 6d 70 6c 65 20 64 61 74 61 20 74
6f 20 73 65 6e 64 0a 77 65 20 73 68 6f 75 6c 64
20 63 6f 6e 63 65 6e 74 72 61 74 65 20 6f 6e 20
69 74 2e 0a 74 68 69 73 20 69 73 20 73 61 6d 70
6c 65 20 64 61 74 61 20 74 6f 20 73 65 6e 64 0a
77 65 20 73 68 6f 75 6c 64 20 63 6f 6e 63 65 6e
74 72 61 74 65 20 6f 6e 20 69 74 2e 0a 74 68 69
73 20 69 73 20 73 61 6d 70 6c 65 20 64 61 74 61
20 74 6f 20 73 65 6e 64 0a 77 65 20 73 68 6f 75
6c 64 20 63 6f 6e 63 65 6e 74 72 61 74 65 20 6f
6e 20 69 74 2e 0a 74 68 69 73 20 69 73 20 73 61
6d 70 6c 65 20 64 61 74 61 20 74 6f 20 73 65 6e
64 0a 77 65 20 73 68 6f 75 6c 64 20 63 6f 6e 63
65 6e 74 72 61 74 65 20 6f 6e 20 69 74 2e 0a 74
68 69 73 20 69 73 20 73 61 6d 70 6c 65 20 64 61
74 61 20 74 6f 20 73 65 6e 64 0a 77 65 20 73 68
6f 75 6c 64 20 63 6f 6e 63 65 6e 74 72 61 74 65
20 6f 6e 20 69 74 2e 0a 74 68 69 73 20 69 73 20
73 61 6d 70 6c 65 20 64 61 74 61 20 74 6f 20 73
65 6e 64 0a 77 65 20 73 68 6f 75 6c 64 20 63 6f
6e 63 65 6e 74 72 61 74 65 20 6f 6e 20 69 74 2e
0a 74 68 69 73 20 69 73 20 73 61 6d 70 6c 65 20
64 61 74 61 20 74 6f 20 73 65 6e 64 0a 77 65 20
73 68 6f 75 6c 64 20 63 6f 6e 63 65 6e 74 72 61
74 65 20 6f 6e 20 69 74 2e 0a 74 68 69 73 20 69
73 20 73 61 6d 70 6c 65 20 64 61 74 61 20 74 6f
20 73 65 6e 64 0a 77 65 20 73 68 6f 75 6c 64 20
63 6f 6e 63 65 6e 74 72 61 74 65 20 6f 6e 20 69
74 2e 0a 74 68 69 73 20 69 73 20 73 61 6d 70 6c
65 20 64 61 74 61 20 74 6f 20 73 65 6e 64 0a 77
65 20 73 68 6f 75 6c 64 20 63 6f 6e 63 65 6e 74
72 61 74 65 20 6f 6e 20 69 74 2e 0a 0a 0a 0a 0a
0a 0a 0a 0a 0a 0a 0a 00 00 00 03 11
我使用的命令是..
[root@localhost scripts]# awk '{printf $0}' decrypt.txt | awk 'NF{for (i=NF-l-p-1;
i<NF-p-1;i++) printf $i" "; print ""}' p=3 l=1159
awk: (FILENAME=- FNR=1) fatal: attempt to access field -71
l
只是计算为wc -w decrypt.txt|cut -d " " -f1
减去p
减去2
答案 0 :(得分:1)
试试这个(你可能需要针对更多样本进行测试)
[jaypal~/Temp]$ cat file.txt
00 15 00 15 00 0d dc ff 61 62 63 64 0a 00 01 11
对于Pad.txt:
[jaypal~/Temp]$ awk 'NF{for (i=NF-p-1;i<NF-1;i++) printf $i; print ""}' p=1 file.txt
00
对于Prot_n_data.txt:
[jaypal~/Temp]$ awk 'NF{for (i=NF-l-p-1;i<NF-p-1;i++) printf $i" "; print ""}' p=1 l=13 file.txt
00 15 00 15 00 0d dc ff 61 62 63 64 0a
<强>更新:强>
由于Feed文件与新行重叠,因此需要对NF进行不同的处理。 NF是特定记录上的字段数(默认情况下是一行)。
<强> pad.txt 强>
awk 'BEGIN{RS=""} {for (i=NF-p-1;i<NF-1;i++) printf $i" "; print ""}' p=1 file.txt | sed 's/..\{47\}/&\n/g'
<强> prot_n_data.txt 强>
awk 'BEGIN{RS=""} {for (i=NF-l-p-1;i<NF-p-1;i++) printf $i" "; print ""}' p=3 l=1159 file1.txt | sed 's/..\{47\}/&\n/g'