在外壳脚本基部64解码(base64 decoding in shell scripting)

2019-11-04 13:12发布

对于实施例I具有像如下的文件。

A,Y29tLz9hPTQ2JmM9NDQzNzgmczE9Q0,123  
B,FJNLTA2MjQyMDE3LVAmczI9ODQ3MDA,321

我想(由基座64解码),字段3打印FIELD1,FIELD2

输出所需::

A,result of base 64 decode,123
B,result of base 64 decode,321

Answer 1:

您可以用几个bash脚本做到这一点read命令和base64 -D

#!/bin/bash

while read -r line
do
  IFS=',' read -r c1 c2 c3 <<< "$line"
  data="$(base64 -D <<< "$c2")"
  echo "$c1,$data,$c3"
done < "inputfile.txt"

你的一个字符串的base64有它的二进制数据的,所以输出可能看起来时髦由于控制字符。

A,com/?a=46&c=44378&s1=,123
���KL
  �
�,321T  �̏N


Answer 2:

给这个AWK的一行一试:

awk -F',' -v OFS=',' '"echo "$2" | base64" | getline $2' file

与试验例:

kent$  cat f
A,Y29tLz9hPTQ2JmM9NDQzNzgmczE9Q0,123  
B,FJNLTA2MjQyMDE3LVAmczI9ODQ3MDA,321

kent$  awk -F',' -v OFS=',' '"echo "$2" | base64" | getline $2' f
A,WTI5dEx6OWhQVFEySm1NOU5EUXpOemdtY3pFOVEwCg==,123  
B,RkpOTFRBMk1qUXlNREUzTFZBbWN6STlPRFEzTURBCg==,321


文章来源: base 64 decoding in shell scripting