shell入门(二)

2017-09-14  本文已影响16人  b470b9fc7145

先写一个开头,省的以后忘记写

逻辑运算

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。

参考文档

shell 学习第十天---sed 查找与替换

上一篇 下一篇

猜你喜欢

热点阅读