shell学习记录
标题三
段落
sed命令:替换、删除、更新文件中的内容
sed 的命令格式:sed command file
- command 部分:针对每行的内容所要进行的处理(这部分很重要很重要)。
- file 部分:要处理的文件,如果忽略 file 参数,则 sed 会把标准输入作为处理对象。
【sed】
- -n 只输出明确表明的行
- -e 设置多个command(多个 command 之间,是按照在命令中的先后顺序来执行)
【command】
- 指定行数‘1,3’ 指定第一行到第三行,$ 表示最后一行
动作:
- d:表示删除行
- p:打印该行
- r:读取指定文件的内容
- w:写入指定文件
- a:在匹配行下面插入新行新内容
- i :在匹配行上面插入新行新内容
输出重定向
command1 > file1
比较两个字符串是否相等:
f [ "$test"x = "test"x ]; then
这里的关键有几点:
1 使用单个等号
2 注意到等号两边各有一个空格:这是unix shell的要求
3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator expected
shell脚本中$0,$1,$2含义
$0 : 脚本名称
$1: 传参到shell里的第一个参数
$2: 传参到shell里的第二个参数
------------------分隔符---------------
题目:Linux中如何用一行shell实现筛选出 demo.txt 文件中所有包含字符串 error 的行,并保存至 demo2.txt 文件内;
答:sed -n '/error/p' demo.txt > demo2.txt