0

我很难提取之间分隔的内容'[ ]'并使用shell脚本进行比较。之后我需要用[].

我收到了文件名内容 som[xxxx]模式的文件,其中一个很有用,我用它来对它们进行分类。

一个例子:

Input: sample[t.225][lb.445][21042013][0913605].extension
Output (pattern lb.445): sample[lb.445].extension

我知道我可以在模式中使用 grep,但之后我不知道如何删除文件名中的其他字段。我认为使用 grep 的策略不是最好的选择,并且在 shell 脚本和模式比较中使用循环的选项听起来很奇怪。

4

1 回答 1

1

awk 在这种情况下可能会有所帮助:

awk -F'[][]' '{print $1"["$4"]"$NF}' input

上面的行从第二个[...]块中获取文本

以您的问题为例:

kent$  echo "sample[t.225][lb.445][21042013][0913605].extension"|awk -F'[][]' '{print $1"["$4"]"$NF}'                                                                       
sample[lb.445].extension
于 2013-04-22T21:38:50.137 回答