linux - 从文件中删除字段保持定界符不变

标签 linux bash shell unix awk

我们需要使用 shell 脚本删除分隔文件中的某些字段,但我们不想丢失分隔符。即

   $cat file1
        col1,col2,col3,col4,col5 
        1234,4567,7890,9876,6754
        abcd,efgh,ijkl,rtyt,cvbn

 now we need to generate different file (say file2) out of file1 with second and fourth column removed with delimeter (,) intact
 i.e
   $cat file2
        col1,,col3,,col5 
        1234,,7890,,6754
        abcd,,ijkl,,cvbn

请建议实现此目的的最简单有效的方法,同时由于文件具有大约 300 个字段/列,AWK 无法正常工作,因为它与字段数量有关。

最佳答案

awk '{$2 = $4 = ""}1' FS=, OFS=, file1 > file2

关于linux - 从文件中删除字段保持定界符不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19804174/

相关文章:

linux - 我的自定义 init shell 脚本停止部署脚本

mysql - 如何在Linux命令提示符下使用存储过程

linux - 为什么流重定向运算符 &>> 在 SUSE Linux 中不起作用?

c - 从 Linux 上的根程序获得对 tty 设备的独占访问权

Linux ssh last - 显示过去 10 天的最后登录

python - Windows机器目录更改时如何在ubuntu上获得通知?

c - Visual Studio 2017 跨平台中特定于 Linux 的 header

bash - SoX:.wav 输入文件上的 EOF 过早

linux - 可以测试mapfile和mapfile -t有什么区别?

linux - 显示大于0的文件内容