如何从 shell 脚本中的文件的特定列中删除总线宽度

如何从 shell 脚本中的文件的特定列中删除总线宽度

我有一个如下文件:

               a2bcd, jias, kjsc[4:0], jhsdc;

               ljnd[7], qhqj5qk, ljwndf, qkhe;

               qkjnfqq, jwnwkls, wkjdf[3], wkjen;

我需要获得以下输出:

                a2bcd, jias, kjsc, jhsdc;

                ljnd, qhqj5qk, ljwndf, qkhe;

                qkjnfqq, jwnwkls, wkjdf, wkjen;

这意味着我需要从第一列和第二列中删除 [*]。有没有办法在 shell 中做到这一点?如果我尝试从整个文件中删除数字,它将删除文本之间的数字。这应该保留。只需要删除总线宽度。TIA

答案1

您可以使用任何流编辑器,即sed

#/bin/bash
for filename in a2bcd, jias, kjsc[4:0], jhsdc ljnd[7], qhqj5qk, ljwndf, qkhe qkjnfqq, jwnwkls, wkjdf[3], wkjen
do
  echo $filename | sed -E -e 's/(.*)(\[.*\])(.*)/\1\3/'
done

相关内容