我需要读取一个文件,找到每一行的最大值,然后打印该行的 ID、最大值来自的列 ( sno#) 以及相关lc#列的值。如果最大值出现不止一次,我需要包含所有匹配项。例如:
Id sno1 lc1 sno2 lc2 sno3 lc3 sno4 lc4
RM1 98 ss1 88 ms1 78 gs1 45 rs1
RM2 23 ss2 44 ms2 98 gs2 15 rs2
RM3 45 ss3 100 ms3 33 gs3 10 rs3
RM4 45 ss4 45 ms4 12 gs4 11 rs4
Run Code Online (Sandbox Code Playgroud)
RM1 ss1 sno1
RM2 gs2 sno3
RM3 ms3 sno2
RM4 ss4,ms4 sno1,sno2
Run Code Online (Sandbox Code Playgroud) 每当我输入的bash命令长于我所在的 shell 窗口的一半宽度时,命令就会中断,就像我填满整个屏幕一样

xs 并得到预期的结果。xs,该命令又回到开头,好像它已经填满了整行。我正在通过腻子连接。
我正在运行 Raspbian(基于 Debian 的发行版)
如果我说的不够清楚,请说,这不容易解释。
我正在尝试使用AutoMysqlBackup脚本来执行我的应用程序的每日备份。不幸的是,在第一次尝试时,它并没有像我想象的那样为我服务。
我相信脚本已经使用了--lock-tables=true参数,它使我的应用程序停止工作。
如果是这种情况,如何使脚本不锁定表?(所以我的应用程序可以继续运行)?
谢谢你。
在以下代码段中,$2awk 返回空。我究竟做错了什么?我试图找到 MAX 和 MIN 之间的区别。
#!/bin/ksh
if [ $# -ne 1 ]; then
echo "Usage: sh `basename ${0}` filename";
exit 1;
fi
if [ ! -s ${1} ]; then
echo "file doesn't exist or is empty";
exit 1;
fi
sed -e '/^$/d' -e '/^#/d' ${1} |
awk -F'=' '
BEGIN {
MIN=$2; MAX=$2; print MIN;
}
{
if ( $2 > MAX )
{
MAX = $2;
}
else if ( $2 < MIN )
{
MIN …Run Code Online (Sandbox Code Playgroud) bash-3.00# cat > b1.txt
AAA,Apples,123
BBB,Bananas,124
CCC,Carrot,125
bash-3.00# cat > b2.txt
Store1|AAA|123|11
Store2|BBB|124|23
Store3|CCC|125|57
Store4|DDD|126|38
bash-3.00# awk -F"[,|]" 'NR==FNR{a[$1]++;next} !a[$2]' b1.txt b2.txt
Store4|DDD|126|38
Run Code Online (Sandbox Code Playgroud)
当NR==FNR第一个文件的返回 truea[$1]增加时。next回到脚本的开头。但是!a[$2]在这里做什么?它如何在没有print命令的情况下打印?