我有一个csv,上面有这样的行:

Last,First,A00XXXXXX,1492-01-10,2015-06-17,,Sentence Skills 104,,Elementary Algebra 38,
Last,First,A00XXXXXX,1492-01-10,2015-06-17,,,,Elementary Algebra 101,College Level Math 56
Last,First,A00XXXXXX,1492-01-10,2015-06-17,Reading Comprehension 102,,,,
Last,First,A00XXXXXX,1492-01-10,2015-06-17,,,,Elementary Algebra 118,College Level Math 97

我想删去“阅读理解”这个词,但要留下数字,但前提是它在第6栏,如果它在任何其他栏,不要管它。
这个变量再一次困扰着我,如果我知道这个数字,我知道如何将它从特定的列中删除,但如果我不知道这个数字,就不删除这个单词并留下这个数字
awk -v old="Reading Comprehension 102" -v new="" -v col=6 '$col==old{$col=new} 1' FS="," OFS="," mergedfile.csv > testmerg.csv

谢谢你的帮助,

最佳答案

重新使用awk变量定义:

$ awk -v old="Reading Comprehension " -v new="" -v col=6 'BEGIN{FS=OFS=","} {sub(old,new,$col)} 1' file
Last,First,A00XXXXXX,1492-01-10,2015-06-17,,Sentence Skills 104,,Elementary Algebra 38,
Last,First,A00XXXXXX,1492-01-10,2015-06-17,,,,Elementary Algebra 101,College Level Math 56
Last,First,A00XXXXXX,1492-01-10,2015-06-17,102,,,,
Last,First,A00XXXXXX,1492-01-10,2015-06-17,,,,Elementary Algebra 118,College Level Math 97

让书有效Awk编程,第四版,由阿诺德罗宾斯。

关于bash - 如果列的一部分在特定的列号中,则将其删除。 (该列有一个变量),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30896185/

10-16 20:42