Regex 如果匹配awk,则将文件中的图案移动到一列上

Regex 如果匹配awk,则将文件中的图案移动到一列上,regex,bash,awk,sed,scripting,Regex,Bash,Awk,Sed,Scripting,我一直在寻找一个安瑟尔,但最终还是落空了,如果我知道正确的方向,那会很有帮助 问题就在这里。我有一份档案。里面有以下内容。每个代码块应该是一个新行 nisNetgroupTriple: (,USER,) cn:example nisNetgroupTriple: (,USER,) nisNetgroupTriple: (,USER,) 如果模式存在,我希望能够将第一列移到第二列。如下 nisNetgroupTriple: (,USER,) *cn:exampl

我一直在寻找一个安瑟尔,但最终还是落空了,如果我知道正确的方向,那会很有帮助

问题就在这里。我有一份档案。里面有以下内容。每个代码块应该是一个新行

nisNetgroupTriple: (,USER,)
cn:example
nisNetgroupTriple: (,USER,)
nisNetgroupTriple: (,USER,)
如果模式存在,我希望能够将第一列移到第二列。如下

nisNetgroupTriple: (,USER,)
                 *cn:example
nisNetgroupTriple: (,USER,)
nisNetgroupTriple: (,USER,)
我可以处理其余的问题,但我还想在
(,)
中包含的值内执行一个命令,例如值
USER
,例如,然后运行
ldapsearch
来提取相关USERID值的cn

我知道这本身就是一项简单的任务。但我想让它自动化

多谢各位

awk '/^cn:/ { $2 = "*"$1; $1 = "\t"} 1' input_file > output_file

$2=“*”$1
将第一个字段复制到第二个字段,前面有一个星号
$1=“\t”
将第一个字段替换为一个制表符,以获得缩进(如果愿意,也可以使用一组空格)。

您要匹配的模式是什么?是不是
cn:
?整行匹配“cn:NAME*”