小编Joh*_*809的帖子

在 Linux 中屏蔽文件中的位 - 按位运算

我想在 Linux 中屏蔽文件中的位,如下所示:

 actual : 00-00000000-00000011-00110010-10000000
 expect : 00-00000000-00000001-01101010-00000000
 error  : 00-00000000-00000010-01011000-00000000
Run Code Online (Sandbox Code Playgroud)

在输出中,该actual部分应该保持原样,除非,error然后1actual应该被屏蔽X

可以看出,error是和数据的异或actualexpected

输出应该看起来像这样:

output : 00-00000000-000000X1-0X1XX010-10000000
Run Code Online (Sandbox Code Playgroud)

是否可以使用 SED、AWK 等命令来执行此操作?

到目前为止做了什么:

grep 'err' gpbat | sed 's?-??g' | cut -c 11-35 | sed 's?1?X?g' > a1
grep 'act' gpbat | sed 's?-??g' | cut -c 11- > a2
Run Code Online (Sandbox Code Playgroud)

但从这里开始,不知道如何合并a1&a2

linux bash merge awk sed

5
推荐指数
1
解决办法
174
查看次数

在 Linux 中,如何将文件特定行号中的数字乘以 2(双精度)?

文件_A

Name: John Smith
Grade: 8
Institute: Baldwin
Number of entries: 125
State: Texas
Run Code Online (Sandbox Code Playgroud)

文件_B

Name: David Buck
Grade: 9
Institute: High Prime
Number of entries: 123
State: California
Run Code Online (Sandbox Code Playgroud)

有许多此类类似的文件,其中条目数(位于所有文件中的第 4 行)必须加倍。

对于 File_A,它应该是 250,对于 File_B,它应该是 246。

如何对 Linux 中的所有文件执行此操作?(使用 sed 或 awk 或任何其他命令)

尝试过的命令:

sed -i '4s/$2/$2*2/g' *.txt               (nothing happening from this)
awk "FNR==4 {sub($2,$2*2)}" *.txt         (getting syntax error)
Run Code Online (Sandbox Code Playgroud)

linux awk sed

3
推荐指数
1
解决办法
205
查看次数

标签 统计

awk ×2

linux ×2

sed ×2

bash ×1

merge ×1