【问题标题】:How to remove all newlines from all .txt files in a folder, using UNIX tools?如何使用 UNIX 工具从文件夹中的所有 .txt 文件中删除所有换行符?
【发布时间】:2022-01-03 00:22:34
【问题描述】:

我在一个文件夹中获得了大约 300 个 (.txt) 文件,其中的“普通文本”采用 /n 格式。我希望这些文件中的所有文本都位于第一行,因为我的管道中的程序需要这样做。

例子:

(是:)
GTCGCAGCCG
TCGGCTCGGA
TCTCGGCCTC

(应该是:)
GTCGCAGCCGTCGGCTCGGATCTCGGCCTC

如果我可以全部覆盖它们,而文件名保持不变,那将很方便。我还不想破解python,有没有简单的UNIX工具/命令行方法?


我以前来过这里: How do I remove newlines from a text file?

但是如何对我文件夹中的所有 300 个文件执行此操作?如果我使用tr -d '\n' < *.txt,它会告诉我:“bash: *.txt: ambiguous redirect”

【问题讨论】:

标签: command-line


【解决方案1】:

您需要一个 shell 循环来依次处理每个文件。请注意,ed 是比 tr 更好的选择,因为它旨在处理文件,而不是流。

for f in *.txt; do
    printf '%%j\nwq\n' | ed "$f"
done

%jed 命令加入缓冲区中的所有行; %% 在这里是必要的,以使 printf 输出文字 %wq 是将更改写回文件的命令。 (q 是可选的,因为ed 无论如何都会在其脚本结束后退出。)

【讨论】:

  • 据我所知,这似乎可行。谢谢(:
猜你喜欢
  • 1970-01-01
  • 2011-06-03
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多