我们如何从输入文件下面删除EES
{"last_name":"Kiran","first_name":"kumar","sno":"1234","effective_date":"11/01/2011","cancel_date":"12/31/9999","alt_ein_id_indicator":"Y","alt_ein_id_employer_number":"V3EES"}
转换后期望文件看起来像这样
{"last_name":"Kiran","first_name":"kumar","sno":"1234","effective_date":"11/01/2011","cancel_date":"12/31/9999","alt_ein_id_indicator":"Y","alt_ein_id_employer_number":"V3"}
TIA
答案 0 :(得分:1)
使用jq解析JSON数据
jq -c '.alt_ein_id_employer_number |= sub("EES";"")' file.json
{"last_name":"Kiran","first_name":"kumar","sno":"1234","effective_date":"11/01/2011","cancel_date":"12/31/9999","alt_ein_id_indicator":"Y","alt_ein_id_employer_number":"V3"}
答案 1 :(得分:0)
以下awk应该从第8个字段或第7个冒号后删除EES字符串。
awk -F':' '{sub("EES","",$8)} 1' OFS=":" Input_file
将很快添加详细说明。
<强>解释强>
awk -F&#39;:&#39; 表示我在这里设置字段分隔符,默认情况下在awk字段分隔符中的值是空格所以我现在进入冒号。所以它只会破坏与冒号相关的部分线条。
{sub(&#34; EES&#34;,&#34;&#34;,$ 8)} 意味着,我正在使用awk的替代工具,它将适用于方法sub(regex_to_be_subsituted,new_value,current_line / variable)。所以在这里我给字符串EES替换为NULL(&#34;&#34;),$ 8表示该行的第8个字段(在第7个冒号后提到)。
1 表示,awk处理条件然后操作的方法,因此通过写1我使条件为TRUE并且没有提及任何动作,所以通过默认打印将会发生。
OFS =&#34;:&#34; 意味着,设置输出字段分隔符,默认情况下OFS将是空格,因此根据您的Input_file我正在设置它致:
Input_file 意味着,只需在此提及Input_file名称。
如果您想将输出保存到相同的Input_file中,那么以下内容可能对您有所帮助。
awk -F':' '{sub("EES","",$8)} 1' OFS=":" Input_file > temp_file && mv temp_file Input_file