该文件是逗号分隔文件,如:
// ==UserScript==
// @name Hide Animations from IMBD search results
// @match *://*.imdb.com/search*
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant GM_addStyle
// ==/UserScript==
//- The @grant directive is needed to restore the proper sandbox.
$(".lister-item").has (".genre:contains('Animation')").hide ();
我们想用自己的方法掩盖第三列:
hue,1,123456,wow,hai
heu,2,654321,waw,hey
uhe,3,001100,iwi,hel
euh,4,119988,qaq,hal
因此在脚本之后我们应该得到类似的东西:
0->9
1->8
2->7
3->6
4->5
5->4
6->3
7->2
8->1
9->0
答案 0 :(得分:0)
尝试关注并告诉我这是否有助于您(在GNU awk中创建)。
awk -F, 'function change(field){num=split(field, array,"");for(i=1;i<=num;i++){gsub(/.*/,9-array[i],array[i]);new=new?new array[i]:array[i]};$3=new;new=""} change($3) 1' Input_file
输出如下。
hue 1 876543 wow hai
heu 2 345678 waw hey
uhe 3 998899 iwi hel
euh 4 880011 qaq hal
编辑: 一个通用解决方案,您可以在其中更改名为数组的数组的BEGIN块内的值,并且可以使用您想要的任何替换,您可以获得越来越多的值你想在其中替代它。
awk -F, '
BEGIN{
num=split("0-9,1-8,2-7,3-6,4-5,5-4,6-3,7-2,8-1,9-0",array,",");
for(i=1;i<=num;i++){
split(array[i],array1,"-");
value[array1[1]]=array1[2]
}
}
function change(field){
num=split(field, a,"");
for(i=1;i<=num;i++){
new=new?(a[i] in value?new value[a[i]]:new a[i]):(a[i] in value?value[a[i]]:a[i])
};
$3=new;
new=""
}
change($3)
1
' OFS=, Input_file