利用sed的w命令,你可以把当前模式空间的内容写入到一个文件里。默认情况下,模式空间的内容输出到stdout,因此如果你想输出到一个文件里,而非屏幕,你应该加上-n选项。
下面是一些例子:
把exployee.txt的内容写入到文件output.txt里(同时显示在屏幕上):
$ sed 'w output.txt'employee.txt
101,John Doe,CEO
102,Jason Smith,ITManager
103,RajReddy,Sysadmin
104,AnandRam,Developer
105,JaneMiller,Sales Manager
$ cat output.txt
101,John Doe,CEO
102,Jason Smith,ITManager
103,RajReddy,Sysadmin
104,AnandRam,Developer
105,JaneMiller,Sales Manager
把exployee.txt的内容写入到output.txt里,但不显示在屏幕上:
$ sed -n 'woutput.txt' employee.txt
$ cat output.txt
101,John Doe,CEO
102,Jason Smith,ITManager
103,RajReddy,Sysadmin
104,AnandRam,Developer
105,JaneMiller,Sales Manager
只把第二行写入:
$ sed -n '2 woutput.txt' employee.txt
$ cat output.txt
102,Jason Smith,ITManager
把第一行到第四行写入:
$ sed -n '1,4 woutput.txt' employee.txt
$ cat output.txt
101,JohnDoe,CEO
102,Jason Smith,ITManager
103,RajReddy,Sysadmin
104,AnandRam,Developer
把从第二行到最后一行写入:
$ sed -n '2,$ woutput.txt' employee.txt
$ cat output.txt
102,Jason Smith,ITManager
103,RajReddy,Sysadmin
104,AnandRam,Developer
105,JaneMiller,Sales Manager
仅仅把奇数行写入:
$ sed -n '1~2 woutput.txt' employee.txt
$ cat output.txt
101,John Doe,CEO
103,RajReddy,Sysadmin
105,JaneMiller,Sales Manager
把匹配'Jane'的行写入:
$ sed -n '/Jane/ woutput.txt' employee.txt
$ cat output.txt
105,JaneMiller,Sales Manager
把第一次匹配'Jasion'的行到最后一行之间所有的行写入:
$ sed -n '/Jason/,4w output.txt' employee.txt
$ cat output.txt
102,Jason Smith,ITManager
103,RajReddy,Sysadmin
104,AnandRam,Developer
如果在前四行没有匹配'Jason'的行,这个命令仅仅把第四行以后匹配'Jason'的行写入到文件。
把第四次匹配'Raj'的行到最后一行之间的行写入:
$ sed -n '/Raj/,$ woutput.txt' employee.txt
$ cat output.txt
103,RajReddy,Sysadmin
104,AnandRam,Developer
105,JaneMiller,Sales Manager
把第一次匹配'Raj'的行到匹配'Jane'的行之间的行写入:
$ sed -n'/Raj/,/Jane/ w output.txt' employee.txt
$ cat output.txt
103,RajReddy,Sysadmin
104,AnandRam,Developer
105,JaneMiller,Sales Manager
把匹配'Jason'的行及下面的两行写入:
$ sed -n '/Jason/,+2w output.txt' employee.txt
$ cat output.txt
102,Jason Smith,ITManager
103,RajReddy,Sysadmin
104,AnandRam,Developer
注意:你可能不经常使用w命令。大多数人保存一个文件时,用UNIX输出重定向来代替sed的w操作。
比如:sed 'p'exployee.txt > output.txt
转载于:https://blog.51cto.com/lduan/1303034