Shell程序集

2013-03-26  本文已影响322人  司马懿

Shell程序集合

bash-2.03# pkgchk -l -p /usr/local/bin/rsync 
路径名:/usr/local/bin/rsync 
类型:正规文件 
期望的模式:0755 
期望的属主:bin 
期望的组:bin 
期望的文件大小(字节):430636 
期望的内容的 sum(1):2431 
期望的上一次修改: 1月 31 11时37分26秒 2009 
由以下软件包引用: 
SMCrsync 
当前状态:已安装 
bash-3.00$ which ls 
/usr/bin/ls 
bash-3.00$ grep /usr/bin/ls /var/sadm/install/contents 
/usr/bin/ls f none 0555 root bin 27400 9595 1169666070 SUNWcsu 

http://www.debian.org/CD/netinst/ 下载netinst CD并安装,注意netinst CD只有包含基本系统,不包含图形界面。

基本系统安装完成后,安装xorg, gnome和gdm:

apt-get install xserver-xorg-core 
apt-get install gnome-core 
apt-get install gdm 

配置:

dpkg-reconfigure xserver-xorg-core 
dpkg-reconfigure gnome-core 
dpkg-reconfigure gdm 

重启即可。


怎样知道一个文件中有多少个逗号?

tr -cd ‘,’ <udev.c | wc -c 

d 表述删除


不覆盖文件的cp

yes n | cp -i bfsh-koc/test.sh ./ >& /dev/null 

是否覆盖的提示overwrite将被忽略掉。


标题: 如何将grep的结果整行的赋给一个变量

请问大家

for var in `grep -rne "aText" .` 
do 
something 
done 

如果grep结果是:

xxxx yyyyy
cccc dddd

那么var会在头一次循环中等于xxxx,第二次循环等于yyyyy。我怎么才能把这一整行赋给var呢?


-bash-3.00$ cat test0405a 
123$ 
$ 
4$ hello 
5$ 
42$ world 
43$ test 

#!/bin/bash 
typeset -i n=$(grep '4' test0405a | wc -l) 
echo $n 
typeset -i m=1 
while [ $m -le $n ] ; do 
var=$(sed -n '/4/p' test0405a | sed -n '$m p') 
echo $var 
m=$m+1 
done 

写一个shel脚本,输出文件1中有而文件2中没有的行。

-bash-3.00$ diff text text.2 | sed -n 's/< //'p 

用命令 comm 也可以

comm file1 file2 

默认是 三列输出
com1 com2 com 3

com1 = not in file1
com2 = not in file2
com3 = in both file1 && file2

输出文件1中有而文件2中没有的行

comm -23 file1 file2 

rev 命令将输入字符串反向排列。


找出当前目录下大于4K的文件

-bash-3.2$ find -size +4k 
./.nfs00000000042f00d500000022 
./a.out 
-bash-3.2$ find -size -4k 
./server.c 
-bash-3.2$ find -size 4k 
-bash-3.2$ ls -lh 
total 12K 
-rwxr-xr-x 1 yuntian member 5.8K Sep 9 16:03 a.out          
-rw-r--r-- 1 yuntian member 735 Sep 9 16:03 server.c 

统计非空白行数:

grep '.' filename | wc -l 
sed '/^$/d' filename | wc –l

――――――――――――――――――――

dd if=/dev/zero of=file.dat bs=1024k count=10 
mkfile 10m fiel.dat

――――――――――――――――――――

# tree.sh 

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/' 

忘了哪里看到的,显示目录树。sed ,awk什么的也真是难懂。

上一篇下一篇

猜你喜欢

热点阅读