相关疑难解决方法(0)

如何在Unix行尾转换Windows行尾(CR/LF到LF)

我是一名Java开发人员,我正在使用Ubuntu进行开发.该项目是在Windows中使用Eclipse创建的,它使用的是CP1252编码.

要转换为UTF-8,我使用了重新编码程序:

find Web -iname \*.java | xargs recode CP1252...UTF-8
Run Code Online (Sandbox Code Playgroud)

此命令会出现此错误:

recode: Web/src/br/cits/projeto/geral/presentation/GravacaoMessageHelper.java failed: Ambiguous output in step `CR-LF..data
Run Code Online (Sandbox Code Playgroud)

我已经关注它并在此处获得解决方案:http://fvue.nl/wiki/Bash_and_Windows#Recode:_Ambiguous_output_in_step_.60data..CR-LF.27 它说:

将行结尾从CR/LF转换为单个LF:使用vim编辑文件,给出命令:set ff = unix并保存文件.Recode现在应该运行没有错误.

很好,但我有很多文件要删除CR/LF字符,我无法打开每个人来做它.Vi不为bash操作提供命令行的任何选项.

sed可以用来做这个吗?怎么样 ?

谢谢=)

linux windows end-of-line

71
推荐指数
6
解决办法
11万
查看次数

转换行结尾

我一直在使用d2u转换行结尾.安装Puppy Linux后,我发现它没有附带d2u,但是dos2unix.然后我注意到默认情况下Ubuntu都丢失了.

转换行结尾的另一种方法是什么?

bash shell command-line dos2unix sed

54
推荐指数
2
解决办法
10万
查看次数

如何规范Java中的EOL字符?

我有一个Linux服务器和许多具有许多操作系统的客户端.服务器从客户端获取输入文件.Linux具有行尾char LF,而Mac具有行尾char CR,而Windows具有行尾char CR + LF

服务器需要作为行尾char LF.使用java,我想确保该文件将始终使用linux eol char LF.我怎样才能实现它?

java line-endings

26
推荐指数
4
解决办法
3万
查看次数

dos2unix不会转换^ M.

我将结果导出到Windows 7上运行的程序的文本文件中,并将文件复制到Xubuntu 14.04上.在一个终端,我跑了dos2unix file.txt,告诉我converting file out_mapqtl.txt to Unix format.但是,当我查看该文件时less,我仍然看到Windows行尾为^ M,并wc -l返回"0".

我试过这里描述的几件事,但都没有用.然后我在Vim中打开文件并:%s/\r/\r/g按照那里的说明进行操作,效果很好.所以任何想法为什么dos2unix不起作用?有没有办法避免每次都打开Vim?

vim dos2unix

13
推荐指数
2
解决办法
7249
查看次数

Windows 10 Docker : /usr/bin/env: 'php\r': 没有那个文件或目录

我有一个 docker-compose.yml 文件,我在其中定义了 php 的图像和构建。它是为带有 php、nginx 和 postgresql 和 postgis 的 Symfony 应用程序制作的:

version: '2'
services: 

 front:
    image: nginx
    ports:
      - "81:80"
    links:
      - "engine:engine"
      - "db:db"
    volumes:
      - ".:/home/docker:ro"
      - "./docker/front/default.conf:/etc/nginx/conf.d/default.conf:ro"

 engine:
    build: ./docker/engine/
    volumes:
      - ".:/home/docker:rw"
      - "./docker/engine/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro"
    links:
      - "db:db"
    working_dir: "/home/docker"



  db:
    image: camptocamp/postgres:9.6
    ports:
      - "5433:5432"
    environment:
      - "POSTGRES_DB=pfe"
      - "POSTGRES_PASSWORD=admin"
      - "POSTGRES_USER=admin"
      - "PGDATA=/var/lib/postgresql/data/pgdata"
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 上一切正常,但是当我尝试在 Windows 10 上运行相同的环境时,出现错误。

docker-compose exec engine bin/console doctrine:schema:create
    /usr/bin/env: 'php\r': No such file or directory
Run Code Online (Sandbox Code Playgroud)

php windows docker docker-compose docker-for-windows

11
推荐指数
3
解决办法
2万
查看次数

为什么我的工具输出会覆盖自己以及如何修复它?

这个问题的目的是提供一个答案,每天的问题,其答案是"你中有DOS行结束",所以我们可以简单地关闭他们,因为这一个的副本,而无需重复同样的答案,令人生厌.

注意:这不是任何现有问题的副本.本问答的目的不仅仅是提供"运行此工具"的答案,而且还要解释这个问题,以便我们可以在这里指出任何有相关问题的人,他们会找到一个明确的解释,为什么他们在这里也被指出作为运行的工具,解决他们的问题.我花了几个小时阅读所有现有的问答,他们都缺乏对问题的解释,可用于解决问题的替代工具,和/或可能的解决方案的优缺点/警告.他们中的一些人已经接受了一些非常危险且永远不应该使用的答案.

现在回到将导致推荐的典型问题:

我有一个包含1行的文件:

what isgoingon
Run Code Online (Sandbox Code Playgroud)

当我使用这个awk脚本打印它来反转字段的顺序时:

awk '{print $2, $1}' file
Run Code Online (Sandbox Code Playgroud)

而不是看到我期望的输出:

isgoingon what
Run Code Online (Sandbox Code Playgroud)

我得到的行应该在行的末尾出现在行的开头,覆盖行开头的一些文本:

 whatngon
Run Code Online (Sandbox Code Playgroud)

或者我将输出拆分为2行:

isgoingon
 what
Run Code Online (Sandbox Code Playgroud)

问题是什么,我该如何解决?

unix awk dos2unix sed

10
推荐指数
1
解决办法
496
查看次数

如何将文件从Dos转换为Unix

我有几个文件,我想从Dos转换为Unix.是否有任何API或方法可以帮助我做到这一点?

java dos2unix

9
推荐指数
1
解决办法
3万
查看次数

将 R 脚本从 DOS 行结尾转换为 Unix

我正在尝试在 unix 服务器上运行我在 Rstudio 中编写的脚本(在下面输入命令)。当我运行该命令时,它返回以下错误消息:

sbatch -N 1 --mem=10000 -p all ./myscript.R
Run Code Online (Sandbox Code Playgroud)

sbatch:错误:批处理脚本包含 DOS 换行符 (\r\n),而不是预期的 UNIX 换行符 (\n)

我该如何解决这个错误?我已经必须输入“#!/usr/bin/env Rscript #SBATCH --get-user-env”才能让 ssh 服务器意识到它是一个 R 脚本。

谢谢你!

r batch-file line-breaks

6
推荐指数
1
解决办法
1万
查看次数

Docker`COPY`文件不起作用

我有一个相对简单的 dockerfile

FROM python:3.6.5-alpine

COPY somebinary /usr/local/bin/

COPY install.sh /install.sh
RUN /install.sh
Run Code Online (Sandbox Code Playgroud)

二进制文件被复制得很好(当我运行容器进行检查时),但脚本似乎没有被复制,所以当我尝试运行它时,我得到:

Step 4/5 : COPY install.sh /install.sh
 ---> 38ecc6dbad13
Step 5/5 : RUN /install.sh
 ---> Running in 0b06962d6e1b
/bin/sh: /install.sh: not found
The command '/bin/sh -c /install.sh' returned a non-zero code: 127
Run Code Online (Sandbox Code Playgroud)

我制作的任何其他测试文件也会发生同样的情况,当图像运行时它们不可用。其他人已经成功运行了完全相同的脚本,所以我怀疑这可能与我在 Windows 上通过 Git Bash 运行 docker 的事实有关?可能是权限问题吗?

e:我去尝试通过 powershell 运行并得到同样的错误,所以也许 git bash 是一个红鲱鱼

docker

5
推荐指数
1
解决办法
4427
查看次数

如何将现有行结尾 CRLF 更改为 LF 并成功将其提交到存储库

在我的项目中,有很多种环境(Windows、Linux、Mac OS)。

有些人一开始对Git的设置错误,所以在git存储库中,有些文件与CRLF混淆了(我希望git存储库中的所有文件都是LF)。

我怎样才能快速将repo中现有的CRLF全部修复为LF(我的开发环境仅限于一些简单的编辑器 - Visual Studio,Sakura Editor,...)。一行一行地修改结尾非常耗时。

感谢任何建议。

git newline lf

5
推荐指数
1
解决办法
4493
查看次数