标签: newlines

在文件末尾添加新行有什么意义?

一些编译器(尤其是 C 或 C++ 编译器)会发出以下警告:

No new line at end of file
Run Code Online (Sandbox Code Playgroud)

我以为这只是 C 程序员的问题,但 github 在提交视图中显示了一条消息:

\ No newline at end of file
Run Code Online (Sandbox Code Playgroud)

对于 PHP 文件。

我理解这个线程中解释的预处理器的事情,但这与 PHP 有什么关系?它是同一include()件事还是与\r\nvs\n主题有关?

在文件末尾换行有什么意义?

files newlines

265
推荐指数
7
解决办法
17万
查看次数

如何在文件末尾添加换行符?

使用版本控制系统时,当差异显示为 时,我对噪音感到恼火No newline at end of file

所以我想知道:如何在文件末尾添加换行符以摆脱这些消息?

shell bash text-processing newlines

237
推荐指数
8
解决办法
36万
查看次数

为什么 ZSH 以突出显示的百分比符号结束一行?

我有时会在各种应用程序中注意到这一点。我经常认为这是因为输出被提前取消(例如 ctrl+c)或类似的东西,而 zsh 正在填充一个新行字符。但是现在好奇心占据了我的心,因为它在 bash 中似乎没有做到这一点。

zsh

zsh

猛击

在此处输入图片说明

Sequence程序是我在阅读 Java 认证时从书中提取的内容,只是想看看它是否可以编译和运行。我确实注意到它没有使用包/类中的println()方法System.out。相反,它使用普通的 old print()

缺少换行符是我得到这个符号的原因吗?

bash prompt zsh newlines

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

为什么 Linux 使用 LF 作为换行符?

据我所知,每个操作系统都有不同的方式来标记行尾 (EOL) 字符。商业操作系统使用 EOL 回车(Windows 上的回车和换行,Mac 上仅回车)。另一方面,Linux 仅对 EOL 使用换行符。

为什么 Linux 不使用 EOL 回车(而仅使用换行符)?

history files newlines

91
推荐指数
4
解决办法
2万
查看次数

如何在不修改文件的情况下测试文件是使用 CRLF 还是 LF?

我需要定期运行一个命令,以确保某些文本文件保持在 Linux 模式下。不幸的是dos2unix总是修改文件,这会弄乱文件和文件夹的时间戳并导致不必要的写入。

我编写的脚本是用 Bash 编写的,所以我更喜欢基于 Bash 的答案。

bash text-processing newlines

77
推荐指数
9
解决办法
14万
查看次数

如何从文件的最后一行删除换行符以便向该行添加文本?

假设我有一个名为file

$ cat file
Hello
Welcome to
Unix
Run Code Online (Sandbox Code Playgroud)

我想and Linux在文件最后一行的末尾添加。如果我这样做echo " and Linux" >> file将被添加到一个新行。但我想要最后一行Unix and Linux

所以,为了解决这个问题,我想删除文件末尾的换行符。因此,如何删除文件末尾的换行符以便向该行添加文本?

shell-script text-processing newlines

77
推荐指数
4
解决办法
12万
查看次数

如何使用 echo 命令和重定向运算符将换行符特殊字符放入文件中?

我想使用 echo 命令和重定向运算符创建一个文件,该文件应该由几行组成。

我试图通过“\n”在字符串中包含一个换行符:

echo "first line\nsecond line\nthirdline\n" > foo
Run Code Online (Sandbox Code Playgroud)

但是这样不会创建三行文件,而是创建一个只有一行和字符串的逐字内容的文件。

如何仅使用此命令创建多行文件?

command-line shell echo newlines

56
推荐指数
3
解决办法
15万
查看次数

查找所有“非二进制”文件

是否可以使用该find命令查找目录中的所有“非二进制”文件?这是我试图解决的问题。

我收到了来自 Windows 用户的文件存档。此存档包含源代码和图像文件。我们的构建系统不能很好地处理具有 Windows 行结尾的文件。我有一个命令行程序 ( flip -u) 可以在 *nix 和 windows 之间翻转行尾。所以,我想做这样的事情

find . -type f | xargs flip -u
Run Code Online (Sandbox Code Playgroud)

但是,如果针对图像文件或其他二进制媒体文件运行此命令,则会损坏该文件。我意识到我可以建立一个文件扩展名列表并用它过滤,但我宁愿有一些不依赖于我保持该列表最新的东西。

那么,有没有办法在目录树中找到所有非二进制文件?或者是否有我应该考虑的替代解决方案?

find files text newlines

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

为什么使用命令替换时换行符会丢失?

我有一个名为 links.txt 的文本文件,它看起来像这样

link1
link2
link3
Run Code Online (Sandbox Code Playgroud)

我想逐行遍历这个文件并对每一行执行一个操作。我知道我可以使用 while 循环来做到这一点,但由于我正在学习,我想使用 for 循环。我实际上使用了这样的命令替换

a=$(cat links.txt)
Run Code Online (Sandbox Code Playgroud)

然后像这样使用循环

for i in $a; do ###something###;done
Run Code Online (Sandbox Code Playgroud)

我也可以做这样的事情

for i in $(cat links.txt); do ###something###; done
Run Code Online (Sandbox Code Playgroud)

现在我的问题是当我在变量 a 中替换 cat 命令输出时,link1 link2 和 link3 之间的换行符被删除并被空格替换

echo $a
Run Code Online (Sandbox Code Playgroud)

产出

链接1 链接2 链接3

然后我使用了 for 循环。当我们执行命令替换时,是否总是用空格替换新行?

问候

shell command-substitution newlines

48
推荐指数
3
解决办法
10万
查看次数

从变量中删除所有空格、制表符、换行符等?

这是我得到的错误,它失败是因为一个变量的值应该是 2(我使用 a 得到这个select * from tabel)。我在那个变量中得到了空格。

+ 0 != 
         2
./setjobs[19]: 0:  not found.
Run Code Online (Sandbox Code Playgroud)

如何从该变量中删除所有这些空格或换行符?可以tr,,sed或任何帮助?

这就是我正在做的:

set_jobs_count=$(echo  "set heading off;
      select count(*) from oppar_db
      where ( oppar_db_job_name, oppar_db_job_rec ) in ($var) ;" | \
  sqlplus -s ${OP_ORA_USER}/${OP_ORA_PASS}@$OPERATIONAL_DB_NAME)
Run Code Online (Sandbox Code Playgroud)

这按建议工作:

| sed 's/[[:space:]]//g'
Run Code Online (Sandbox Code Playgroud)

但我仍然获得一个值,如:

  set_jobs_count=
  2
Run Code Online (Sandbox Code Playgroud)

shell sed whitespace tr newlines

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