把模式空间写入到文件(w命令)

利用sedw命令,你可以把当前模式空间的内容写入到一个。默认情况下,模式空间的内容输出到stdout,因此如果你想输出到一个文件里,而非屏幕,你应该加上-n选项。

 

下面是一些例子:

exployee.txt的内容写入到文件output.txt里(同时显示在屏幕上):

$ sed 'w output.txt' employee.txt

101,John Doe,CEO

102,Jason Smith,IT Manager          

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

105,Jane Miller,Sales Manager

$ cat output.txt

101,John Doe,CEO

102,Jason Smith,IT Manager

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

105,Jane Miller,Sales Manager

 

exployee.txt的内容写入到output.txt里,但不显示在屏幕上:

$ sed -n 'w output.txt' employee.txt

$ cat output.txt

101,John Doe,CEO

102,Jason Smith,IT Manager

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

105,Jane Miller,Sales Manager

 

只把第二行写入:

$ sed -n '2 w output.txt' employee.txt

$ cat output.txt

102,Jason Smith,IT Manager

 

把第一行到第四行写入:

$ sed -n '1,4 w output.txt' employee.txt

$ cat output.txt

101,John Doe,CEO         

102,Jason Smith,IT Manager

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

 

把从第二行到最后一行写入:

$ sed -n '2,$ w output.txt' employee.txt

$ cat output.txt

102,Jason Smith,IT Manager

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

105,Jane Miller,Sales Manager

 

仅仅把奇数行写入:

$ sed -n '1~2 w output.txt' employee.txt

$ cat output.txt

101,John Doe,CEO

103,Raj Reddy,Sysadmin

105,Jane Miller,Sales Manager

 

把匹配'Jane'的行写入:

$ sed -n '/Jane/ w output.txt' employee.txt

$ cat output.txt

105,Jane Miller,Sales Manager

 

把第一次匹配'Jasion'的行到最后一行之间所有的行写入:

$ sed -n '/Jason/,4 w output.txt' employee.txt

$ cat output.txt

102,Jason Smith,IT Manager           

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

 

如果在前四行没有匹配'Jason'的行,这个命令仅仅把第四行以后匹配'Jason'的行写入到文件。

 

把第四次匹配'Raj'的行到最后一行之间的行写入:

$ sed -n '/Raj/,$ w output.txt' employee.txt

$ cat output.txt

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

105,Jane Miller,Sales Manager

 

 

把第一次匹配'Raj'的行到匹配'Jane'的行 之间的行写入:

$ sed -n '/Raj/,/Jane/ w output.txt' employee.txt

$ cat output.txt

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

105,Jane Miller,Sales Manager

 

把匹配'Jason'的行及下面的两行写入:

$ sed -n '/Jason/,+2 w output.txt' employee.txt

$ cat output.txt

102,Jason Smith,IT Manager

103,Raj Reddy,Sysadmin

104,Anand Ram,Developer

 

注意:你可能不经常使用w命令。大多数人保存一个文件时,用UNIX输出重定向来代替sedw操作。

比如:sed 'p' exployee.txt > output.txt

相关新闻

发表回复

Please Login to Comment

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

                                                                                                                                    RHCE9学习指南全部更新完成,点击阅读