我有一个如下文件:
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