【发布时间】:2020-10-02 15:14:14
【问题描述】:
处理由多行组成的多列文件,我需要更改第一列中每一行的名称(特别是删除已处理文件的完整路径)。这是日志的格式:
/scratch_p/john/results_test_docking/7000/7000_12_lig_cne_767.dlg: 2 | -10.50 | 10 | -10.38 | 16 |################
/scratch_p/john/results_test_docking/7000/7000_08_lig_cne_767.dlg: 1 | -10.41 | 11 | -10.34 | 11 |###########
/scratch_p/john/results_test_docking/7000/7000_08_lig_cne_998.dlg: 1 | -9.89 | 1 | -9.34 | 7 |#######
/scratch_p/john/results_test_docking/7000/7000_06_lig_cne_998.dlg: 2 | -9.64 | 12 | -9.39 | 6 |######
/scratch_p/john/results_test_docking/7000/7000_04_lig_cne_900.dlg: 1 | -9.62 | 12 | -8.95 | 11 |###########
/scratch_p/john/results_test_docking/7000/7000_05_lig_cne_767.dlg: 1 | -9.37 | 20 | -9.13 | 5 |#####
/scratch_p/john/results_test_docking/7000/7000_08_lig_cne_331.dlg: 1 | -9.31 | 8 | -8.29 | 6 |######
/scratch_p/john/results_test_docking/7000/7000_12_lig_cne_900.dlg: 1 | -9.16 | 8 | -8.82 | 8 |########
/scratch_p/john/results_test_docking/7000/7000_08_lig_cne_818.dlg: 1 | -9.12 | 3 | -8.35 | 5 |#####
/scratch_p/john/results_test_docking/7000/7000_10_lig_cne_587.dlg: 1 | -9.07 | 19 | -8.50 | 10 |##########
/scratch_p/john/results_test_docking/7000/7000_09_lig_cne_515.dlg: 1 | -9.02 | 12 | -7.93 | 7 |#######
/scratch_p/john/results_test_docking/7000/7000_07_lig_cne_987.dlg: 1 | -9.00 | 16 | -8.77 | 8 |########
/scratch_p/john/results_test_docking/7000/7000_04_lig_cne_767.dlg: 2 | -8.96 | 9 | -8.88 | 8 |########
/scratch_p/john/results_test_docking/7000/7000_12_lig_cne_331.dlg: 1 | -8.94 | 11 | -8.54 | 9 |#########
/scratch_p/john/results_test_docking/7000/7000_10_lig_cne_331.dlg: 1 | -8.90 | 1 | -8.49 | 6 |######
/scratch_p/john/results_test_docking/7000/7000_10_lig_cne_767.dlg: 4 | -8.87 | 4 | -8.86 | 14 |##############
在这里,我应该从每一行的第一列中删除 /scratch_p/john/results_test_docking/7000/ (模式通常在每一行之间共享,但在不同的日志中可能会有所不同......),所以只保留 .dlg 文件的名称。然后我应该删除第 2、4 列 上述示例的预期输出应为:
7000_12_lig_cne_767.dlg: -10.50 | -10.38 | 16 |################
7000_08_lig_cne_767.dlg: -10.41 | -10.34 | 11 |###########
7000_08_lig_cne_998.dlg: -9.89 | -9.34 | 7 |#######
7000_06_lig_cne_998.dlg: -9.64 | -9.39 | 6 |######
7000_04_lig_cne_900.dlg: -9.62 | -8.95 | 11 |###########
7000_05_lig_cne_767.dlg: -9.37 | -9.13 | 5 |#####
7000_08_lig_cne_331.dlg: -9.31 | -8.29 | 6 |######
7000_12_lig_cne_900.dlg: -9.16 | -8.82 | 8 |########
7000_08_lig_cne_818.dlg: -9.12 | -8.35 | 5 |#####
7000_10_lig_cne_587.dlg: -9.07 | -8.50 | 10 |##########
7000_09_lig_cne_515.dlg: -9.02 | -7.93 | 7 |#######
7000_07_lig_cne_987.dlg: -9.00 | -8.77 | 8 |########
7000_04_lig_cne_767.dlg: -8.96 | -8.88 | 8 |########
7000_12_lig_cne_331.dlg: -8.94 | -8.54 | 9 |#########
7000_10_lig_cne_331.dlg: -8.90 | -8.49 | 6 |######
7000_10_lig_cne_767.dlg: -8.87 | -8.86 | 14 |##############
实现它的唯一可能方法是在文本编辑器中手动编辑 :-)。是否可以使用一些 bash 实用程序来做到这一点?
【问题讨论】:
-
列的宽度是固定的,总是一样的吗?
-
是的,格式总是一样的!
标签: bash multiple-columns