Shell脚本第二列为空,请在第行下粘贴$1
我有如下数据:Shell脚本第二列为空,请在第行下粘贴$1,shell,unix,awk,sed,grep,Shell,Unix,Awk,Sed,Grep,我有如下数据: TEST1 AAAAA MUTUAL BBBBB MUTUAL CCCCC MUTUAL TEST2 DDDDD SINGLE EEEEE SINGLE FFFFF SINGLE AAAAA TEST1 BBBBB TEST1 CCCCC TEST1 DDDDD TEST2 EEEEE TEST2 FFFFF TEST2 在Unix Solaris中如何使用Shell脚本进行更改
TEST1
AAAAA MUTUAL
BBBBB MUTUAL
CCCCC MUTUAL
TEST2
DDDDD SINGLE
EEEEE SINGLE
FFFFF SINGLE
AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
在Unix Solaris中如何使用Shell脚本进行更改
AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
如果要在Solaris/SunOS系统上尝试此操作,请将脚本开头的awk更改为
/usr/xpg4/bin/awk
或/usr/xpg6/bin/awk
或nawk
AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
说明:
AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
如果记录/行/行中没有字段等于1,则将第一列保存在变量NF==1{val=$1;next}
val
AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
next
停止处理进一步的条件,转到下一行AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
{$2=val}
将保存的值设置为第二个字段(因此此处将修改未跳过的行/记录/行)AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
1
最后执行默认操作,即打印当前/记录/行,打印$0。要了解awk的工作原理,请尝试使用awk“1”infle,它将打印所有记录/行,而awk“0”infle不打印任何内容。零以外的任何数字都为true,这将触发默认行为AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
如果要在Solaris/SunOS系统上尝试此操作,请将脚本开头的awk更改为
/usr/xpg4/bin/awk
或/usr/xpg6/bin/awk
或nawk
AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
说明:
AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
如果记录/行/行中没有字段等于1,则将第一列保存在变量NF==1{val=$1;next}
val
AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
next
停止处理进一步的条件,转到下一行AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
{$2=val}
将保存的值设置为第二个字段(因此此处将修改未跳过的行/记录/行)AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
1
最后执行默认操作,即打印当前/记录/行,打印$0。要了解awk的工作原理,请尝试使用awk“1”infle,它将打印所有记录/行,而awk“0”infle不打印任何内容。零以外的任何数字都为true,这将触发默认行为AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
请尝试以下内容,并让我知道这是否有帮助
AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
nawk '/^TEST/{val=$0;next} {print $1,val}' Input_file
请您尝试以下内容,并让我知道这是否有帮助
AAAAA TEST1
BBBBB TEST1
CCCCC TEST1
DDDDD TEST2
EEEEE TEST2
FFFFF TEST2
nawk '/^TEST/{val=$0;next} {print $1,val}' Input_file
尝试了什么?尝试了什么?awk:第1行附近的语法错误awk:第1行附近的退出如果要在Solaris/SunOS系统上尝试此操作,请将脚本开头的awk更改为/usr/xpg4/bin/awk或/usr/xpg6/bin/awk或nawkawk:第1行附近的语法错误awk:第1行附近的退出如果要在Solaris/SunOS系统上尝试此操作,将脚本开头的awk更改为/usr/xpg4/bin/awk或/usr/xpg6/bin/awk或nawk