这可能非常简单,但我有一个带有地震数据的.txt
文件,其中我试图使用grep
命令仅打印来自内华达的特定数据(文件中的数据)标记为CA
或NV
)并将其放入自己的.txt
文件中。
示例数据:
map 0.2 2016/09/26 18:36:51 39.330N 119.991W 4.7 9 km ( 6 mi) N of Incline Village, NV
map 1.5 2016/09/26 18:26:27 39.362N 122.781W 19.5 25 km (15 mi) NNE of Upper Lake, CA
map 1.5 2016/09/26 18:18:16 36.055N 117.857W 2.2 8 km ( 5 mi) E of Coso Junction, CA
map 0.2 2016/09/26 18:10:46 38.363N 118.324W 4.6 32 km (20 mi) SE of Hawthorne, NV
我正在输入:grep NV filename > newfilename
但是什么都没有出现。怎么了? (我的作业是专门使用grep
命令。)
答案 0 :(得分:1)
你想要这个:
cat *filename* | grep something > result.txt
答案 1 :(得分:0)
您的命令看起来好像应该有效,但为了安全起见,您可能希望确保获得您想要的内容。 grep以下只能获得以NV结尾的行
grep " NV$" filename > newfilename
当你说你看不到任何东西后,你是否在查看文件内容?
答案 2 :(得分:0)
我将您的示例数据复制/粘贴到名为sample-data
的文件中并尝试了我原本使用的grep
模式(' NV$'
),但后来我发现只有一行来了,最后一个,因为在第一行NV
之后有[不可见]空格。所以为了防止这种情况,我将[ \t]*
放在grep模式中NV
和$
(行尾符号)之间,得到了我期望的结果。见下文:
$ grep ' NV$' sample-data > result.txt
$ cat result.txt
map 0.2 2016/09/26 18:10:46 38.363N 118.324W 4.6 32 km (20 mi) SE of Hawthorne, NV
$ cat sample-data
map 0.2 2016/09/26 18:36:51 39.330N 119.991W 4.7 9 km ( 6 mi) N of Incline Village, NV
map 1.5 2016/09/26 18:26:27 39.362N 122.781W 19.5 25 km (15 mi) NNE of Upper Lake, CA
map 1.5 2016/09/26 18:18:16 36.055N 117.857W 2.2 8 km ( 5 mi) E of Coso Junction, CA
map 0.2 2016/09/26 18:10:46 38.363N 118.324W 4.6 32 km (20 mi) SE of Hawthorne, NV
$ grep ' NV[ \t]*$' sample-data > result.txt
$ cat result.txt
map 0.2 2016/09/26 18:36:51 39.330N 119.991W 4.7 9 km ( 6 mi) N of Incline Village, NV
map 0.2 2016/09/26 18:10:46 38.363N 118.324W 4.6 32 km (20 mi) SE of Hawthorne, NV
$
简而言之,我认为你想要的是安全的,是:
grep ' NV[ \t]*$' sample-data > result.txt
或者,更安全,如果你不相信,逗号和NV
之间总是有空格:
grep ',[ \t]*NV[ \t]*$' sample-data > result.txt
,翻译,表示"匹配具有逗号,零个或多个空格或制表符,NV,零个或多个空格或制表符的行,并且在行尾之前不再有其他内容。"
顺便说一下,如果这是家庭作业,而不是你的工作或家庭项目,从技术上讲,你应该向老师承认你在StackOverflow上寻求帮助。你的老师会对你的诚实留下更深刻的印象,如果你能说,我可能会赢得你的支持,我得到它,我明白了,看看我测试的其他例子,他们也工作了!&# 34;老师的主要目标是你学习和理解,而不是你得到一些分数。我提供这个答案的目的是帮助你更多地了解grep
,我们数百万人在生活中每天都使用它来完成我们的工作,所以这是值得学习的。可能我应该提供一个"教学"这个例子不是确切的答案,但这是一个小小的,微不足道的问题,我在喝咖啡休息时就回答了这个问题。老实说,只要对老师说实话。