如下图:在while中用awk去重复,awk只能循环执行一次,第二次进入循环后就不执行
解决方案 »
- SecureCRT如何连接我的Ubuntu16.04?
- linux启动问题,设备启动不了了!
- 关于定时任务表达式
- yum配置
- 求助:文件夹权限是777,新建文件没有权限,vim产生各种swp文件
- 一般情况下,什么操作需要在root用户下进行 ?
- ping服务器,显示无法访问目标,但是又收到了数据包
- 有没有命令来指出区别两块盘
- 请问怎么办?
- 在linux执行下载jenkins命令时,总是报这个错,请教各位大神,怎么解决
- CAN通信问题,求大神帮忙!!
- firewall 的 SNAT配置问题(curl: (7) Failed to connect to 192.168.57.2 port 80: No rou)
但是,如果你要使用shell变量,awk后就不要用单引号,否则从语法上就错了。
awk用了双引号以后,awk自己的域引用($0、$1...)就要转义(\$0、\$1...)。
该加引号的最好别省事儿,万一有个空格啥的就哭瞎啦。
另外,read本身可以按$IFS分割一行字符串赋值给多个变量,所以可以省略几句。
cat $dblog | while read sysName tableName reptNum delimeter; do
dataFile="$nzdatFile/$1/$sysName"
noReptDat="$nzNoRepeat/$sysName"
[[ -d "$noReptDat" ]] || {
mkdir -p "$noReptDat"
chmod 777 "$noReptDat"
}
reptDat="$nzRepeat/$sysName"
[[ -d "$reptDat" ]] || {
mkdir -p "$reptDat"
chmod 777 "$reptDat"
}
awk -F"$delimeter" "a[$reptNum]++" "$dataFile/$tableName.dat" > "${tableName}_rept.dat"
echo "awk -F\"\$delimeter\" \"a[\$reptNum]++\" \$dataFile/\$tableName.dat >\$reptDat/\${tableName}_rept.dat"
awk -F"$delimeter" "!a[$reptNum]++" "$dataFile/$tableName.dat" >"$noRepetDat/${tableName}.dat"
done
以后这种帖子最好用字符串,别贴图。信息也尽量全。
awk -F"$delimeter" "!a[$reptNum]++" "$dataFile/$tableName.dat" >"$noRepetDat/${tableName}.dat"
感叹号和后边的a要空格,不然shell就要另作解析,改为
awk -F"$delimeter" "! a[$reptNum]++" "$dataFile/$tableName.dat" >"$noRepetDat/${tableName}.dat"