主要用的的脚本命令
sed -i '1i 添加的内容' file #这是在第一行前 添加字符串
sed -i '$i 添加的内容' file #这是在倒数第二行添加字符串
sed -i '$a 添加的内容' file #这是在最后一行**添加一行**字符串
echo '内容' > file #覆盖之前内容,文件只显示添加后的内容
echo '内容' >> file #追加内容至最后一行**行后**
sed -i '/指定内容/a\要添加的内容' file # 在包含指定内容的行后面增加一行
sed -i '/指定内容/i\要添加的内容' file # 在包含指定内容的行前面增加一行
实践
文件内容
.page {
padding: 0;
}
.text-demo-title {
margin-left: 30rpx;
margin-top: 30rpx;
}
.text-demo-text {
font-size: 36rpx;
}
指定内容
this is sed test!!
测试脚本
sed -i '1i 添加的内容' file #这是在第一行前 添加字符串
输出:
this is sed test!!
.page {
padding: 0;
}
.text-demo-title {
margin-left: 30rpx;
margin-top: 30rpx;
}
.text-demo-text {
font-size: 36rpx;
}
sed -i '$i 添加的内容' file #这是在最后一行**行前**添加字符串
输出:
.page {
padding: 0;
}
.text-demo-title {
margin-left: 30rpx;
margin-top: 30rpx;
}
.text-demo-text {
font-size: 36rpx;
this is sed test!!
}
sed -i '$a添加的内容' file #这是在最后一行**行后**添加字符串
输出:
.page {
padding: 0;
}
.text-demo-title {
margin-left: 30rpx;
margin-top: 30rpx;
}
.text-demo-text {
font-size: 36rpx;
}
this is sed test!!
echo '内容' > file #覆盖之前内容,文件只显示添加后的内容
输出:
this is sed test!!
echo '内容' >> file #追加内容至最后一行**行后**
输出:
.page {
padding: 0;
}
.text-demo-title {
margin-left: 30rpx;
margin-top: 30rpx;
}
.text-demo-text {
font-size: 36rpx;
}this is sed test!!
sed '/^.page/a\#!/bin/bash' file
输出:
.page {
#!/bin/bash
padding: 0;
}
.text-demo-title {
margin-left: 30rpx;
margin-top: 30rpx;
}
.text-demo-text {
font-size: 36rpx;
}
sed '/^.page/i\#!/bin/bash' file
输出:
#!/bin/bash
.page {
padding: 0;
}
.text-demo-title {
margin-left: 30rpx;
margin-top: 30rpx;
}
.text-demo-text {
font-size: 36rpx;
}
拓展
另外,在使用过程中,可能还存在这些东西
shell 转义
用\
表示,比如:
\' \" \* \? \\ \~ \` \! \# \$ \& \|
特殊实例:
在一对引号中不允许出现单引号,转义字符也不行
比如:echo ‘it is wolf’s book’
这个时候尽可能用双引号替换:echo “it is wolf’s book”
特定的转义符的特殊的含义
echo和sed命令中使用
\n
表示新的一行
\r
表示回车
\t
表示水平制表符
\v
表示垂直制表符
\b
表示后退符
\a
表示"alert"(蜂鸣或者闪烁)
\"
表示引号字面的意思
echo "Hello" # Hello
echo "\"Hello\", he said." # "Hello", he said.
\$
表示$本身子面的含义(跟在\$后边的变量名将不能引用变量的值)
比如: echo "\$variable01" # 结果是$variable01
\\
表示反斜线字面的意思