标题: [技术讨论] [求助] shell 有类似 windows 里 for 语句的功能吗? [打印本页]
作者: newswan 时间: 2021-3-28 01:24 标题: [求助] shell 有类似 windows 里 for 语句的功能吗?
本帖最后由 newswan 于 2021-3-28 01:27 编辑
shell 有类似 windows 中 for 语句的功能吗?
比如:- for /f "tokesns=3,6" %a in () do
复制代码
可以用函数调用- f1()
- {
- echo $1
- echo $3
- }
-
- f1 line
复制代码
还有更好的方法没
作者: Batcher 时间: 2021-3-28 09:36
回复 1# newswan
列操作,还是用 awk 比较方便吧。
作者: newswan 时间: 2021-3-30 03:12
本帖最后由 newswan 于 2021-3-30 15:57 编辑
嗯嗯,搞定,各种编程规则,太麻烦了,很少用,每次使用都要复习一下,好痛苦。。。- {
- n=$10":"$9;
- sum1[n]+=$1;
- sum2[n]+=$2;
- }
-
- END{
- split("KMGT", suffix, "")
- for (i in sum1)
- {
- print i getn(sum1[i]) getn(sum2[i]);
- }
- }
-
- function getn(num,_LOCAL_,i)
- {
- for(i=0; num>=1024 && i < 4; i++) num/=1024
- return num""suffix[i]
- }
复制代码
完成。。。
作者: newswan 时间: 2021-3-30 22:46
改了一版- {
- n=$10":"$9
- idx[n]
- sum[n,1]+=$1
- sum[n,2]+=$2
- }
-
- END{
- asorti(idx)
- split("KMGT", suffix, "")
- for (i in idx)
- {
- i=idx[i]
- print i getn(sum[i,1]) getn(sum[i,2])
- }
- }
-
- function getn(num,_LOCAL_,i)
- {
- for(i=0; num>=1024 && i < 4; i++) num/=1024
- return num""suffix[i]
- }
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |