我想在 Unix 中将包含“hello”的行从 file1 重定向到 file 2。这里使用的命令是什么?
答案1
您将需要该命令grep
。 ( man grep
)。
和文件重定向>
。 ( man bash
)
来自 grep 手册
.
.
.
SYNOPSIS
grep [OPTION...] PATTERNS [FILE...]
.
.
.
-F, --fixed-strings
Interpret PATTERNS as fixed strings, not regular expressions.
.
.
.
我建议更全面地阅读本手册。
答案2
这是 grep 的教科书用法,以至于它作为动词被称为“grepping”,而不是被称为“重定向”。
fgrep hello file.txt > file2.txt
fgrep
grep
是仅查找固定字符串的变体f
(而不是匹配常用表达,re
中grep
)。标准的等效项是grep -F
,尽管您会发现grep
像 Solaris/bin/grep
这样的古老实现尚不支持该-F
选项。
答案3
我得到了答案
sed -i -e '/hello/{ w file2.txt' -e 'd;}' file1.txt
(动作匹配行进入file2.txt
)
或者
grep "hello" file1.txt > file2.txt
(副本匹配行进入file2.txt
)