1

下面的“一个班轮”解释了我正在尝试做的事情:

pbpaste > ~/Documents/convertme.txt; \
dos2unix -c mac ~/Documents/convertme.txt && \
cat ~/Documents/convertme.txt | pbcopy && \
rm -vfr ~/Documents/convertme.txt

我不喜欢创建临时文件,我宁愿通过管道输入/输出一直在内存中处理所有内容。

就像是:

pbpaste | dos2unix -c mac -n /dev/stdin /dev/stdout | pbcopy

哪个不起作用,它错误:dos2unix: Skipping /dev/stdin, output file /dev/stdout is a symbolic link.

我想到的唯一其他解决方案可能是创建一个shell脚本来处理这个变量......但我想我会在这里问,因为我认为可能仍然有一种方法可以进出dos2unix。

我已经在 StackOverflow 上进行了搜索,但找不到重复的问题,但是我确信有一个类似于 dos2unix 的命令,有人已经为它解决了这个问题。如果是这种情况,我会接受带有该链接的答案,但也请用正确的管道命令重新编写答案dos2unix(对于未来的读者和像我这样无法在谷歌中找到该索引的人)。

4

1 回答 1

3

当您不提供任何输入/输出文件名时,dos2unix 将从标准输入获取输入并写入标准输出。

pbpaste | dos2unix -c mac | pbcopy
  1. pbpaste 获取剪贴板的内容并将其发送到标准输入
  2. dos2unix 将 dos eol 转换为 unix(或者在本例中为 mac)。如果您没有提及文件名作为输入,它将采用标准输入。
  3. pbcopy 获取标准输出并推入剪贴板。
于 2019-03-07T09:45:03.880 回答