标签: newlines

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

这是我得到的错误,它失败是因为一个变量的值应该是 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万
查看次数

如何修复“Hunk #1 FAILED at 1(不同的行尾)”消息?

我正在尝试使用命令创建补丁

git diff sourcefile >/var/lib/laymab/overlay/category/ebuild/files/thepatch.patch
Run Code Online (Sandbox Code Playgroud)

当我应用补丁时,它给了我

$ patch -v
GNU patch 2.7.5

$ /usr/bin/patch -p1 </var/lib/laymab/overlay/category/ebuild/files/thepatch.patch
patching file sourcefile
Hunk #1 FAILED at 1 (different line endings).
Hunk #2 FAILED at 23 (different line endings).
Hunk #3 FAILED at 47 (different line endings).
Hunk #4 FAILED at 65 (different line endings).
Hunk #5 FAILED at 361 (different line endings).
5 out of 5 hunks FAILED -- saving rejects to file sourcefile.rej
Run Code Online (Sandbox Code Playgroud)

我试图将 dos2unix 应用于 src 文件和补丁文件,但消息没有消失......

UPD:--ignore-whitespace 也无济于事

PATCH COMMAND: …
Run Code Online (Sandbox Code Playgroud)

diff patch git newlines

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

如何在每个换行符之前添加回车符?

我有一个仅\n用于新行的文件,但我需要它\r\n用于每个新行。我怎样才能做到这一点?

例如,我在 Vim 中使用 解决了它:%s/\n/\r\n/g,但我想使用脚本或命令行应用程序。有什么建议?

我尝试使用sedor查找它grep,但我立即对转义序列解决方法感到困惑(我对这些命令有点陌生)。

如果有兴趣,该申请涉及到我的问题/答案在这里

grep sed newlines

31
推荐指数
2
解决办法
14万
查看次数

使用 cat 创建文件时,我必须输入 ctrl+d 两次才能完成输入,这是预期的吗?

我刚刚学会了使用命令创建新文件的技巧cat。根据我的测试,如果最后一行后面没有换行符,我必须输入ctrl+d两次才能完成输入,如下所示。

[root@192 ~]# cat > 测试
A
乙
ctrl+d[root@192 ~]# cat > 测试
A
b ctrl+dctrl+d[root@192 ~]#

这是预期的吗?为什么会有这种行为?

cat newlines

31
推荐指数
1
解决办法
3409
查看次数

为什么行尾 $ 锚不能与 grep 命令一起使用,即使行前 ^ 锚是?

对 UNIX 非常陌生,但对编程并不陌生。在 MacBook 上使用终端。为了管理和搜索填字游戏的单词列表,我正在尝试使用 Grep 命令及其变体。看起来很简单,但很早就被我认为应该是一个简单的案例所困扰。

当我进入

grep "^COW" masternospaces.txt
Run Code Online (Sandbox Code Playgroud)

我得到了我想要的:所有以 COW 开头的单词的列表。

但是当我进入

grep "COW$" masternospaces.txt
Run Code Online (Sandbox Code Playgroud)

我希望得到一个以 COW 结尾的单词列表(有很多这样的单词),并且根本没有返回任何内容。

该文件是一个纯文本文件,每行只有一个单词(或一个没有空格的单词短语),全部大写。

知道这里会发生什么吗?

grep newlines

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

如何在源代码中read -p的提示下将一个长字符串分成多行?

我正在编写一个安装脚本,它将作为/bin/sh.

有一行提示输入文件:

read -p "goat may try to change directory if cd fails to do so. Would you like to add this feature? [Y|n] " REPLY
Run Code Online (Sandbox Code Playgroud)

我想把这条长行分成多行,这样每行都不超过 80 个字符。我说的是脚本源代码中的行;与执行脚本时实际打印在屏幕上的行无关

我试过的:

shell string shell-script newlines bourne-shell

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

文件名中的换行符

我理解并接受防御性1 shell 脚本既谨慎又从长远来看更可持续的前提。

此处的许多文本处理问题的答案都遵循这一原则,将非正统文件名的意外情况纳入到答案中;可能包含空格、破折号和换行符。

文件名中的新行有多普遍?具体来说:

  • 是否有任何应用程序默认创建包含换行符的文件名?
  • 是否存在需要创建此类文件名的情况?
  • 或者它们主要是用户错误的实例?

[1] 意味着规划和管理尽可能广泛的场景和突发事件......

受(相当悲哀的)对这个问题的评论启发的问题

shell-script filenames newlines

26
推荐指数
2
解决办法
4595
查看次数

如何用sed检测行尾

我正在寻找一种仅在最后一个字符是换行符时执行替换的方法,使用sed.

例如:

lettersAtEndOfLine
Run Code Online (Sandbox Code Playgroud)

被替换,但这不是:

lettersWithCharacterAfter&
Run Code Online (Sandbox Code Playgroud)

由于sed不能很好地与换行符一起使用,所以它并不像

$ sed -E "s/[a-zA-Z]*\n/replace/" file.txt
Run Code Online (Sandbox Code Playgroud)

如何做到这一点?

sed regular-expression newlines

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

读取可能不以换行符结尾的面向行的文件

我有一个名为的文件/tmp/urlFile,其中每行代表一个 url。我正在尝试从文件中读取如下内容:

cat "/tmp/urlFile" | while read url
do
    echo $url
done
Run Code Online (Sandbox Code Playgroud)

如果最后一行不以换行符结尾,则不会读取该行。我想知道为什么?

是否可以读取所有行,无论它们是否以新行结束?

shell bash text-processing newlines

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

如何用新行替换单词

我有一个包含以下数据的文本文件,每一行都以|END|.

T|somthing|something|END|T|something2|something2|END|
Run Code Online (Sandbox Code Playgroud)

我tryig更换|END|\n新行的sed。

 sed 's/\|END\|/\n/g' test.txt
Run Code Online (Sandbox Code Playgroud)

但它产生如下错误输出:

 T
 |
 s
 o
 m
 e
 ...
Run Code Online (Sandbox Code Playgroud)

但我想要的是这个:

T|somthing|something
T|something2|something2
Run Code Online (Sandbox Code Playgroud)

我也尝试过tr。它也没有用。

sed text-processing regular-expression newlines

19
推荐指数
3
解决办法
5万
查看次数