【问题标题】:Error extension file when use grep to write file [duplicate]使用grep写入文件时出错扩展文件[重复]
【发布时间】:2015-11-26 20:45:45
【问题描述】:

我有 100 个“.txt”文件。每个文件包含的数据如

File name Data
1.txt     BAP1
2.txt     UCHL1
3.txt     ABC1234

现在我想扫描这些文件的内容并写入 txt 文件,条件是它包含我的输入字符串,例如"BAP1"。我使用了下面的编码,但输出文件有错误,例如“1.txt”。我不知道为什么扩展文件在最后一个文件中有更多的点。你能帮我解决吗?我在cygwin工作

#!/bin/sh
grep -w 'BAP1' *.txt>"1.txt"
grep -w 'UCHL1' *.txt>"2.txt"

【问题讨论】:

  • 写入输入文件集中的输出文件总是一个坏主意。将您的输出文件放在不同的目录中,不包含在通配符中。
  • 您能为我推荐一个好的解决方案吗?谢谢
  • 我相信我刚刚做到了。
  • 顺便说一句,“输出文件有错误例如”不清楚是输出文件的名称还是内容错误。请更加注意文本的准确性。
  • ...在这一点上,我几乎可以肯定您的实际问题是您的脚本文件有 DOS 换行符。

标签: bash


【解决方案1】:

在您的脚本上运行 dos2unix,或者告诉您的编辑器将其保存为 UNIX 文本文件。

否则,您的文件名将在其名称末尾带有回车符(又名$'\r')。

【讨论】:

  • 这意味着它将放在我的脚本的第一个
  • 嗯?不可以。您不能将其放入脚本中,您必须在脚本上运行它,在脚本运行之前。跨度>
  • 你是对的。它返回 1.txt\r'
猜你喜欢
  • 2012-10-31
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-06
  • 2018-10-28
  • 1970-01-01
  • 2017-02-12
相关资源
最近更新 更多