这里的目的是将文件中的第一行复制到最后一行
这里是输入文件
335418.75,2392631.25,36091,38466,1
335418.75,2392643.75,36092,38466,1
335418.75,2392656.25,36093,38466,1
335418.75,2392668.75,36094,38466,1
335418.75,2392681.25,36095,38466,1
335418.75,2392693.75,36096,38466,1
335418.75,2392706.25,36097,38466,1
335418.75,2392718.75,36098,38466,1
335418.75,2392731.25,36099,38466,1
Run Code Online (Sandbox Code Playgroud)
使用以下代码,我得到了所需的输出.还有其他简单的选择吗?
awk 'NR==1 {print}' FF1-1.csv > tmp1
cat FF1-1.csv tmp1
Run Code Online (Sandbox Code Playgroud)
输出所需
335418.75,2392631.25,36091,38466,1
335418.75,2392643.75,36092,38466,1
335418.75,2392656.25,36093,38466,1
335418.75,2392668.75,36094,38466,1
335418.75,2392681.25,36095,38466,1
335418.75,2392693.75,36096,38466,1
335418.75,2392706.25,36097,38466,1
335418.75,2392718.75,36098,38466,1
335418.75,2392731.25,36099,38466,1
335418.75,2392631.25,36091,38466,1
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我有很多文件(我以5为例)
如果与第一个文件不匹配,则应在输出中附加0
文件1
1001 1 2
1002 1 2
1003 3 5
1004 6 7
1005 8 9
1009 2 3
Run Code Online (Sandbox Code Playgroud)
文件2
1002 7
1003 8
Run Code Online (Sandbox Code Playgroud)
文件3
1001 5
1002 3
Run Code Online (Sandbox Code Playgroud)
文件4
1002 10
1004 60
1007 4
Run Code Online (Sandbox Code Playgroud)
文件5
1001 102
1003 305
1005 809
Run Code Online (Sandbox Code Playgroud)
期望的输出
1001 1 2 0 5 0 102
1002 1 2 7 3 10 0
1003 3 5 8 0 0 305
1004 6 7 0 0 60 0
1005 8 9 0 0 0 …Run Code Online (Sandbox Code Playgroud) 如何修改我的代码添加选项以获取输出的行号
在这里我的意见
输入文件
39589 39461 3 2835 2.97 2.97
39591 39461 3 2835 3.90 3.89
39591 40071 3 2835 3.38 9.00
39595 39953 3 2835 3.91 3.91
39601 39593 3 2836 3.50 17.00
39603 38669 3 2836 3.43 3.43
39603 39233 3 2836 4.03 8.00
Run Code Online (Sandbox Code Playgroud)
我的代码
awk 'BEGIN{
DASHES = sprintf ("%0*d",57, _)
gsub (/0/, "-", DASHES)
print DASHES
printf("%8s%12s%9s%14s%14s \n","ID/ID","XCode","ID","Code-OK(m)","Co
print DASHES
}
{
diff=sqrt(($5-$6)^2)
if(diff > 3.8) printf("%5s %5s %6d %10d %10.2f %14.2f\n",$1,$2,$3,$4,$
}
END{
print DASHES
}' …Run Code Online (Sandbox Code Playgroud) 我想在文件的最后一行(最后一个字符)中添加一个点(句号)
文件:
AAAAAA 21,28,22-23,35,24-27,29-30,37,31-34,36,54,38-45,47,46,48-53,
AAAAAA 71,55-70,72-78,80,79,81-93,96,94-95,97-98,100,99,101-103,
AAAAAA 122,104-114,118,115-117,119-121,123-124,140,125-130,148,
AAAAAA 1649-1650,1652-1667,1669-1853
Run Code Online (Sandbox Code Playgroud)
期望的输出
AAAAAA 21,28,22-23,35,24-27,29-30,37,31-34,36,54,38-45,47,46,48-53,
AAAAAA 71,55-70,72-78,80,79,81-93,96,94-95,97-98,100,99,101-103,
AAAAAA 122,104-114,118,115-117,119-121,123-124,140,125-130,148,
AAAAAA 1649-1650,1652-1667,1669-1853**.**
Run Code Online (Sandbox Code Playgroud)
我的代码:
sed '$d' file > tmp1
tail -1 file > tmp2
sed -i 's/$/./' tmp2
cat tmp1 tmp2 > output
Run Code Online (Sandbox Code Playgroud)
我用上面的代码得到了所需的输出.
有没有更有效的方法来解决这个问题?
我正在尝试对第2列中的某些数字求和,它与我的代码兼容。但是我也想计算在第2列中相同值重复多少次并在最后一栏中打印。
文件1
36 2605 1 2
36 2605 1 2
36 2603 1 2
36 2605 1 2
36 2605 1 2
36 2605 1 2
36 2606 1 2
Run Code Online (Sandbox Code Playgroud)
期望的输出
2603 36 1 2 1
2605 180 5 10 5
2606 36 1 2 1
Run Code Online (Sandbox Code Playgroud)
我试过了
awk '{a[$2]+=$1}{b[$2]+=$3}{c[$2]+=$4;count[$2]+=$2}END{for(i in a)print i,a[i],b[i],c[i],count[i]}' file1
Run Code Online (Sandbox Code Playgroud)
提前致谢