如何在 Windows-10 机器上的 Ubuntu 应用程序上安装 dos2unix

Dom*_*que 9 package-management apt software-installation windows-10

我有一个 Ubuntu 应用程序,安装在我的 Windows-10 机器上。就版本而言,这是以下结果uname -a

Linux <username> 4.4.0-17134-Microsoft #523-Microsoft Mon Dec 31 17:49:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

使用这个 Linux “模拟器”,正如我所说的,我经常做grep, find, wc -l, sort, ... 以进行分析,但这有时会生成 UNIX 格式的输出文件(我说的是行尾)。

为了获得 Windows 行结尾,我决定unix2dos在文件上启动 a ,但这给出了以下错误消息:

The program 'unix2dos' is currently not installed. You can install it by typing:
sudo apt install dos2unix
Run Code Online (Sandbox Code Playgroud)

换句话说,我的应用程序知道,为了做到unix2dosdos2unix一点,需要包。这看起来是个好消息,但我无法安装它:

sudo apt install dos2unix
[sudo] password for <username>:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package dos2unix
Run Code Online (Sandbox Code Playgroud)

我之前已经安装过包,所以应该是dos2unix包特有的问题。

供您参考:

  • 我没有/var/log/messages文件。
  • dmesg 不起作用: dmesg: read kernel buffer failed: Function not implemented
  • 我有一个/var/log目录,但最新的文件/目录修改是大约一周前。
  • 我有一个/var/log/apt目录,但最新的文件/目录修改是大约一周前。
  • 我尝试自己调试它,使用strace,但失败了 ( strace: exec: Operation not permitted, +++ exited with 1 +++)。

第一次评论后编辑

apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages
     release v=16.04,o=Ubuntu,a=xenial-security,n=xenial,l=Ubuntu,c=restricted,b=amd64
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
     release v=16.04,o=Ubuntu,a=xenial-security,n=xenial,l=Ubuntu,c=main,b=amd64
     origin security.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages
     release v=16.04,o=Ubuntu,a=xenial-updates,n=xenial,l=Ubuntu,c=restricted,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
     release v=16.04,o=Ubuntu,a=xenial-updates,n=xenial,l=Ubuntu,c=main,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages
     release v=16.04,o=Ubuntu,a=xenial,n=xenial,l=Ubuntu,c=restricted,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages
     release v=16.04,o=Ubuntu,a=xenial,n=xenial,l=Ubuntu,c=main,b=amd64
     origin archive.ubuntu.com
Pinned packages:
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?

小智 21

这解决了我的问题:

sudo apt-get update
sudo apt-get install dos2unix
Run Code Online (Sandbox Code Playgroud)