如何在 bash 中转换文本文件? (foo.txt 到 bar.txt)

发布于 2024-12-03 23:35:57 字数 696 浏览 1 评论 0原文

我正在尝试使用 foo.txt >> 通过 bash 将一个文本文件附加到另一个文本文件酒吧.txt。问题是, foo.txt 是一个 Windows 文本文件(我认为),因为一旦附加到 bar.txt 中

every new^M
line^M
ends^M
like this.^M

,因此,它们肯定是两种不同的文件类型。

我已在 Google 上搜索答案,但 Google 不接受“>>”等特殊字符和搜索中的“^”。我能找到的最接近的解决方案是 commandlinefu.com 上报告的解决方案,但它所做的只是从 bar.txt 中删除 r,这实际上根本不是解决方案。

所以,我这里有两个问题:

  1. 如何使用 bash 发现 foo.txt 到底是什么文件类型?
  2. 如何正确转换 foo.txt 以使其可附加到 bar.txt?

I'm trying to append, via bash, one text file to another using foo.txt >> bar.txt. The problem is, foo.txt is a windows text file (I think), because once appended in bar.txt

every new^M
line^M
ends^M
like this.^M

Thus, they are surely two different file-types.

I've searched Google for answers but Google doesn't accept special characters like ">>" and "^" in search. The closest solution I can find is a reported solution on commandlinefu.com, but all it does is strip the r's from bar.txt which, really, is no solution at all.

So, I have two questions here:

  1. How do I discover, using bash, what file-type foo.txt really is?
  2. How do convert foo.txt properly to make it appendable to bar.txt?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

-残月青衣踏尘吟 2024-12-10 23:35:57
sed 's/

或者使用dos2unix(如果可用)。

"/`echo \\\r`/" foo.txt >> bar.txt

或者使用dos2unix(如果可用)。

sed 's/

or use dos2unix, if it's available.

"/`echo \\\r`/" foo.txt >> bar.txt

or use dos2unix, if it's available.

笑饮青盏花 2024-12-10 23:35:57

使用 dos2unix 转换 Windows 行结尾:

dos2unix foo.txt

Convert the Windows line endings with dos2unix:

dos2unix foo.txt
|煩躁 2024-12-10 23:35:57
  1. 如果文件具有 DOS 样式的行结尾,文件 foo.txt 将输出:“ASCII 文本,带有 CRLF 行终止符”。
  1. file foo.txt will output: "ASCII text, with CRLF line terminators" if the file has DOS-style line endings.
冷情 2024-12-10 23:35:57

使用fromdostodos,或者unix2dosdos2unix

Use fromdos and todos, or unix2dos and dos2unix.

梦中楼上月下 2024-12-10 23:35:57

查找命令 dos2unixunix2dos。您可能希望先复制一份 (cp)

Look up the commands dos2unix and unix2dos. You may wish to make a copy first (cp)

囚我心虐我身 2024-12-10 23:35:57

一个快速而肮脏的解决方案:

tr -d '\r' < foo.txt

A quick-and-dirty solution:

tr -d '\r' < foo.txt
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文