use*_*359 4 unix macos command-line grep
我尝试了一些方法,但似乎没有取得任何进展 - 我有一个包含一些数据行的文本文件,我想要该文件中的一些数据行。每行都有一个我可以grep的唯一标识符。
如果我使用
grep 'name1\|name2\|name3\|name4' file.txt > newfile.txt
Run Code Online (Sandbox Code Playgroud)
它完成了工作并搜索了我想要的所需行,但是,我想要按照我指定的顺序排列的行 - 在这个例子中,我首先想要 name1 行,然后是 name2 行,然后是 name3 行,最后是 name4 行。
但是,例如在我的原始文件中,行的顺序是 name2,然后是 name4,然后是 name3,然后是 name1,输出文件似乎也有这个顺序的行。
有没有办法轻松订购grep?
id 是按块排序的,因此所有具有 name1 的行例如彼此相邻。
感谢您的任何建议!
给定一个要 grep 的单词文件,例如:
root
lp
syslog
nobody
Run Code Online (Sandbox Code Playgroud)
您可以使用读取循环对另一个文件中的固定字符串重复 grep。例如,使用 Bash shell 的默认REPLY变量和存储在/tmp目录中的 word 文件,这将起作用:
while read; do
grep --fixed-strings "$REPLY" /etc/passwd
done < /tmp/words
Run Code Online (Sandbox Code Playgroud)
/tmp/words。