[Shell]利用sed修改文件 获取指定字符串所在行号,删除行,写入行


测试文件test.txt 内容如下:

wangju@wangju-HP-348-G4:~/Desktop$ cat test.txt
line 1
line 2
line 3
line 4

获取行

方式1:使用grep命令:grep -n "<指定字符串>" 文件名称 | cut -d ":" -f 1

wangju@wangju-HP-348-G4:~/Desktop$ grep -n "line 2" test.txt |cut -d ":" -f 1
2

方式2:使用sed,sed -n -e "/<指定字符串>/=" 文件名称

wangju@wangju-HP-348-G4:~/Desktop$ sed -n -e "/line 2/=" test.txt 2

删除行

sed -i "<行号> d" 文件名称,-i表示保存删除操作

wangju@wangju-HP-348-G4:~/Desktop$ sed  -i  "2 d" test.txt wangju@wangju-HP-348-G4:~/Desktop$ cat test.txt line 1 line 3 line 4

写入行

追加:a 在当前行后添加一行或多行 

wangju@wangju-HP-348-G4:~/Desktop$ sed -i "2 a\ new line 2" test.txt wangju@wangju-HP-348-G4:~/Desktop$ cat test.txt line 1 line 3
 new line 2 line 4

插入:i 在当前行之前插入文本 

wangju@wangju-HP-348-G4:~/Desktop$ sed -i "2 i\ new line insert" test.txt wangju@wangju-HP-348-G4:~/Desktop$ cat test.txt line 1
 new line insert line 3
 new line 2 line 4

 

参考文档:

Shell_sed


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM