先写一个开头,省的以后忘记写
逻辑运算
if else
a=10
b=20
if [ $a == $b ]
then
echo "a 等于 b"
elif [ $a -gt $b ]
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
for
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
while
#!/bin/sh
int=1
while(( $int<=5 ))
do
echo $int
let "int++"
done
文件操作
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
echo "It is a test" > myfile
sed查找和替换
sed 可删除(delete)、改变(change)、添加(append)、插入(insert)、合、交换文件中的资料行,或读入其它档的资料到文>件中,也可替换(substuite)它们其中的字串、或转换(tranfer)其中的字母等等。例如将文件中的连续空白行删成一行、"local"字串替换成"remote"、"t"字母转换成"T"、将第 10 行资料与第 11 资料合等。
总合上述所言,当 sed 由标准输入读入一行资料并放入 pattern space 时,sed 依照 sed script 的编辑指令逐一对 pattern space 内的资料执行编辑之後,再由 pattern space 内的结果送到标准输出,接着再将下一行资料读入。如此重执行上述动作,直至读完所有资料行为止。
小结,记住:
(1)sed 总是以行对输入进行处理
(2)sed 处理的不是原文件而是原文件的拷贝
主要参数:
-e:执行命令行中的指令,例如:sed -e 'command' file(s)
-f:执行一个 sed 脚本文件中的指令,例如: sed -f scriptfile file(s)
-i:与-e的区别在于:当使用-e 时,sed 执行指令并不会修改原输入文件的内容,只会显示在 bash 中,而使用-i 选项时,sed 执行的指令会直接修改原输入文件。
-n:读取下一行到 pattern space。
网友评论