【发布时间】:2014-12-01 09:51:54
【问题描述】:
我正在分析一组数百个 .txt 文件(使用 NSP 进行 ngram 分析),我需要从每个文件中删除所有换行符。我可以使用 tr 一次完成一个:
$ tr -d "\n\r" < input1.txt > output1.txt
如何一次对我的整个文件目录执行此操作?
【问题讨论】:
标签: bash for-loop newline tr file-manipulation
我正在分析一组数百个 .txt 文件(使用 NSP 进行 ngram 分析),我需要从每个文件中删除所有换行符。我可以使用 tr 一次完成一个:
$ tr -d "\n\r" < input1.txt > output1.txt
如何一次对我的整个文件目录执行此操作?
【问题讨论】:
标签: bash for-loop newline tr file-manipulation
这将在 .txt 之前添加 -out。除了 .txt,您还没有指定文件名是什么样的,所以希望您没有名为 foo-out.txt 等的输入文件。
for f in *.txt
do
tr -d "\n\r" < "$f" > $(basename "$f" .txt)-out.txt
done
【讨论】:
*-out.txt 文件。但我想这没关系,因为它们不会被修改,而且tr 相当快。但我建议给输出文件一个不同的扩展名,这样你仍然可以使用简单的*.txt glob 作为你的输入文件。或者更好的是,将输出文件放到一个单独的目录中。
input 1.txt。让我解决。