#!/bin/sh exec 3<&0 exec 0<$(awk -F: '{print $1,$4}' /etc/passwd) c=0 while read user gid do if [ $gid -ge 100 ];then echo "user=${user}" c=$((c+1)) fi done echo "count:$c" exec 0<&3 3<&- 如上代码,while语句块不能够执行,求解!
by lovesfj1437 - Linux环境编程 - 2011-06-30 10:14:11 阅读(1767) 回复(0)
在编一个小程序时,首先有一个含有数据的文件ABCD,我对里面的数据进行处理后输出到另一个文件中。 shell程序在处理ABCD时,首先插入一个标志字符串:end。然后处理数据。当检测到end,也就是文件尾时,停止处理。 处理中,我发现程序始终检测不到这个标志。输出错误如下: ./netstatrpt.sh: [: !=: unary operator expected 奇怪的是,当我第二执行这个程序时,系统可以检测到第一个标志。但是不能检测到第二个标志(我用echo不断...
[root@localhost shell_200601]# cat -n copyfile 1 #!/bin/sh 2 #copyfile 3 FILENAME=myfile.txt 4 FILENAME_BAK=myfile.bak 5 6 if [ -s $FILENAME ];then 7 exec 4>$FILENAME_BAK 8 exec 3>$FILENAME #上2句为:把标准输出的文件描述符3,4分别重定向到2个变量中。 9 while : 10 do 11 read LINE <&3 # 上句为:把文件描述符3作为标准输入。 12 if [ "$?" -ne 0 ];then 13 exec 3<&- 14 exec 4<&- #关闭文件描述符3,4为标准输...
有一个文件,如下: file1: 11 haha 11 hh 22 re 01 vv 01 hehe 01 g 01 02 02 02 02 03 03 13 13 13 现在想用shell命令将文件分割,分割条件:将第一列相同的行放到同一个文件中,结果: 11 haha 11 hh ————〉放到文件11.txt 01 vv 01 hehe 01 g 01---------->放到01.txt 求指点
请教一个文件处理的脚本,如果第一列 相同 比较第二列 显示出大的 第一列没有相同的正常显示,shell该怎么写。文件如下: BJ-YZH-2-2960S-2007 852Mb BJ-YZH-2-2960S-2012 712Mb BJ-YZH-2-2960S-2012 961Mb BJ-YZH-2-2960S-2012 978Mb BJ-YZH-2-2960S-2028 968Mb BJ-YZH-2-2960S-2030 962Mb BJ-YZH-2-2960S-2033 960Mb BJ-YZH-2-2960S-2038 785Mb BJ-YZH-2-2960S-2038 794Mb BJ-YZH-2-2960S-2040 858Mb BJ-YZH-2-2960S-2040 863...
我有这样一个文件: 1 a 3 s 2 f 5 g 7 j 4 t 9 r 6 w 8 l 现在我想按照第一列的值的大小将文件分成三组,每一行后边标出改行属于第几组。 这里也就是第一列是123的行为第一组, 第一列是456的行为第二组,第一列是789的行是第三组。 结果想要这个样子的: 1 a 1 2 f 1 3 s 1 4 t 2 5 g 2 6 w 2 7 j 3 8 l 3 9 r 3 请问该怎样解决呢?
我有一个这样的文件a.txt: a;b;c;d; 3 e;f 2 g 4 h 5 然后想要得到这样的结果: a 3 b 3 c 3 d 3 e 2 f 2 g 4 h 5 可以直接用用sed将分号替换成换行吗? 可是那样的话 后边的数字怎么办?请各位多多指教! 谢谢