我有一个问题:编写一个 Linux sed 命令来保存与文件 datat.txt 的模式“数字”(大写或小写)匹配的行,并将结果(覆盖以前的内容)保存到:~/results.txt
我使用这个命令:
sed -n -i '/number/p' data.txt>~/results.txt
但是当我使用 more 命令查看 results.txt 文件时,它显示空文本文件。请让我知道我做错了吗?
答案1
你使用两个选项
-n
:安静模式,无输出-i
: 就地编辑
所以你覆盖原始文件,只保留模式,并且不输出任何内容。
也许你打算?
sed -n '/number/Ip' data.txt > ~/results.txt
- 没有
-n
标志,所有行都会被回显 I
不区分大小写的标志
男人
-n,--安静,--沉默
抑制图案空间的自动打印
-i[后缀], --in-place[=后缀]
就地编辑文件(如果提供扩展名,则进行备份)。默认操作模式是断开符号链接和硬链接。这可以通过 --follow-symlinks 和 --copy 进行更改。