filecount=
($(ls |grep "^bf_gather_fee"))#定义变量的新方法 可以使用 $(里边为命令处理) 然后再加() if [ "${#filecount[@]}" -eq "21" ] then
2用ps -ef | grep a.out时。会显示grep a.out
1.把输出信息去掉
ps -ef | grep a.out>/dev/null 2>&1
2.过滤掉a.out
ps -ef | grep -v a.out #-v 不输出自己。3请教如何将一个
脚本执行结果同时输出到
文件和屏幕中?
通过filename.sh | tee output 2>&1
虽然屏幕中有正确和错误输出,但文件output只有正确输出,如何让output 也存放错误
提示呢?
filename.sh 2>&1 | tee output #这句 同时 将输出(错误的、正确的) 输出到屏幕和文件。for divideLine in `grep -n '^End\ of' SimpleDraw`
#空格需要 转义符 4有这样的文本:
61.61.173.1 000c86ea440a
61.61.173.5 000aeb14a33e
61.61.173.8 000aeb18ee27
61.61.173.10 00e04c7427bd
转换为:
61.61.173.1 00:0c:86:ea:44:0a
61.61.173.5 00:0a:eb:14:a3:3e
61.61.173.8 00:0a:eb:18:ee:27
61.61.173.10 00:e0:4c:74:27:bd
[root@ytest ken]# cat 1.txt | sed -e 's/ \(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/ \1:\2:\3:\4:\5:\6/g'61.61.173.1 0:00:c8:6e:a4:40a
61.61.173.5 0:00:ae:b1:4a:33e
61.61.173.8 0:00:ae:b1:8e:e27
61.61.173.10 0:0e:04:c7:42:7bd
[root@ytest ken]# cat 1.txt | sed -e 's/ \(...\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6/g'61.61.173.1 00:0c:86:ea:44:0a
61.61.173.5 00:0a:eb:14:a3:3e
61.61.173.8 00:0a:eb:18:ee:27
61.61.173.10 00:e0:4c:74:27:bd
[root@ytest ken]# awk '{gsub(/../,"&:",$2);print $1,substr($2,1,length($2)-1)}' 1.txt 61.61.173.1 00:0c:86:ea:44:0a
61.61.173.5 00:0a:eb:14:a3:3e
61.61.173.8 00:0a:eb:18:ee:27
61.61.173.10 00:e0:4c:74:27:bd
[root@ytest ken]# awk '{gsub(/../,"&:",$2)}{gsub(/:$/,"");print}' 1.txt 61.61.173.1 00:0c:86:ea:44:0a
61.61.173.5 00:0a:eb:14:a3:3e
61.61.173.8 00:0a:eb:18:ee:27
61.61.173.10 00:e0:4c:74:27:bd
5f.txt 内容
/usr/local/mysql
/usr/local/lib
/usr/local/apache2/conf
希望输出结果为 /usr/local/mysql /usr/local/lib /usr/local/apache2/conf
1.sh 即可
#! /bin/sh
while read line
do
#echo $line
str4read="$str4read $line"
done
echo "$str4read"
谢谢两位,原来用管道就会引入子进程。长见识了:)
6取出文件的 第一行 第三列 、列以制表符分割
a b c
d e f
x y z
cat 1.txt | sed -e "${1}p" -n|awk '{print $'3'}'
[root@ytest ken]# cat 1.txt | sed -e "${1}p" -n|awk '{print $'3'}' c
f
z
7我想把awk的结果输入到一个变量中应该怎么办
var=$(awk ...)
新手请教,$#是什么意思?
在很多script中都看到了这个变量,就是不知道什么意思。哪位老大给解释一下呀。
$#是参数的个数,如:
9
取文件名1.txt
.前面的一个字符
echo 1.txt|sed 's/^.*\([A-Za-z0-9]\.\).*/\1/;s/\.//'
10
替换第四行 第一列 字符为特定字符
awk -v str=fuck 'NR==4{$1=str}{print}' 1.txt
11
引用的必要性
" " 双引号
' ' 单引号
` ` 反引号
\ 反斜线
双引号可以引用除字符$ ` \外的任意字符或字符串。
a="Hello Linux"
echo $a
Hello Linux
如果要查询包含空格的字符串,经常会用于双引号。
grep "aaa bbb" /etc/passwd
a="linux"
echo "Hello $a "
Hello linux
echo "Hello "$a" "
Hello linux
单引号
单引号与双引号类似,不同的是
shell会忽略任何引用值。换句话说,如果屏蔽了其特殊含义,会将引号里的所有字符,包括引号都作为一个字符串。
a='linux'
echo "Hello $a"
Hello linux
echo "Hello '$a'"
Hello 'linux'
反引号用于设置系统命令的输出到变量。
shell将反引号中的内容作为一个系统命令,并执行其内容。使用这种方法可以替换输出为一个变量。反引号可以与引号结合使用。
echo `date`
日 5月 29 23:21:52 CST 2005
echo "There are `who|wc -l` users"
There are 6 users
expr 12 \* 12
144
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
阅读(498) | 评论(0) | 转发(0) |