AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[newlines](unix)

Martin Hope
Fajela Tajkiya
Asked: 2022-05-04 13:57:12 +0800 CST

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

  • 29
这个问题在这里已经有了答案:
Ctrl+D 用于结束终端行输入 2 个答案
5 个月前关闭。

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

[root@192 ~]# cat > test
一个
b
ctrl+d[root@192 ~]# cat > test
一个
b ctrl+dctrl+d[root@192 ~]#

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

cat newlines
  • 2 个回答
  • 2480 Views
Martin Hope
Adam
Asked: 2020-01-31 12:30:44 +0800 CST

为什么 printf 不转义换行符?

  • 7
$ printf "hi"
hi$ printf "hi\n"
hi
$ printf "hi\\n"
hi

为什么最后一行不打印hi\n?

bash newlines
  • 3 个回答
  • 5838 Views
Martin Hope
Just a learner
Asked: 2019-08-29 23:24:40 +0800 CST

这个 sed 的结果中最后一个换行符来自哪里?

  • 7

我正在学习 sed 的不同命令并做了一些实验。我正在尝试的命令是:

root:[~]# seq 7 | sed -n '1~2H; 2~2{G;p}'
2

1
4

1
3
6

1
3
5
root:[~]#

我分析了命令,对我来说,数字后面的最后一个换行符5不应该存在。下面是我的分析。

在此处输入图像描述

根据我的分析,输出应该是红色背景的单元格。如您所见,没有最后一个换行符。我哪里错了?提前致谢。

sed newlines
  • 2 个回答
  • 306 Views
Martin Hope
fuumind
Asked: 2019-07-31 06:16:42 +0800 CST

是否可以从没有新行的流中 grep?

  • 4

运行此代码时:

while true; do printf "Match Unmatch\n"; sleep 1s; done | grep -o "Match"

在终端中,grep找到单词Match. 我得到输出:

Match
Match
Match
...

但是,当我运行以下代码时:

while true; do printf "Match Unmatch"; sleep 1s; done | grep -o "Match"

然后grep似乎什么也没找到,至少它什么也没打印。grep 是否在等待永远不会出现的换行符?是否有某种方法可以在没有换行符的情况下在流中进行 grep、sed 或类似工具捕获匹配?

grep newlines
  • 1 个回答
  • 501 Views
Martin Hope
simhumileco
Asked: 2019-03-03 06:03:37 +0800 CST

为什么我在 vim 的插入模式下看不到两个不同文件之间的区别?

  • 8

让我们创建两个文件:

$ echo -n 'test' > test.txt
$ wc test.txt 
0 1 4 test.txt

该文件test.txt不包含尾随换行符。

$ echo 'test' > test_n.txt
$ wc test_n.txt 
1 1 5 test_n.txt

该文件test_n.txt包含尾随换行符。

上面两个文件明显不同,但是两个文件vim在insert模式下的预览并没有什么区别:

$ vim test.txt

在此处输入图像描述

$ vim test_n.txt

在此处输入图像描述

为什么没有区别(新行或某些特殊区别)?

我该怎么做才能vim在插入模式下添加或删除这样的附加字符?

vim newlines
  • 1 个回答
  • 768 Views
Martin Hope
Abdillah
Asked: 2019-01-06 02:44:29 +0800 CST

如何使用 tr 将双新行替换为单行?

  • 0

给定一个文本,

$ cat a.txt
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam at magna sed libero accumsan ultrices. Proin varius tortor risus, at pulvinar quam auctor 
vitae.


Etiam iaculis ipsum quis lacus convallis finibus. Nunc fermentum, nunc sit amet egestas congue, odio quam sollicitudin velit, quis venenatis augue 
nibh sed tortor.

我无法使用此命令删除双空行。

$ tr '\n\n' '\n' < a.txt 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam at magna sed libero accumsan ultrices. Proin varius tortor risus, at pulvinar quam auctor 
vitae.


Etiam iaculis ipsum quis lacus convallis finibus. Nunc fermentum, nunc sit amet egestas congue, odio quam sollicitudin velit, quis venenatis augue 
nibh sed tortor.

用其他 char 作品替换单个新行,是不是很奇怪?

replace newlines
  • 1 个回答
  • 1658 Views
Martin Hope
Greg Nisbet
Asked: 2018-12-31 20:43:29 +0800 CST

能够将 `\r` 视为空白字符的 Shell

  • 7

作为一个个人项目,我正在尝试编写一个脚本来清理在 Cygwin 下运行的 Windows 10 附带的一些无关文件。我希望脚本可以复制和粘贴,这需要它对不同类型的换行符具有鲁棒性。是否有任何类似sh- 的 shell 暴露了将其\r视为空格的能力,可能在设置了某些选项时?

这是一件很奇怪的事情。答案可能归结为“是的,这是一件奇怪的事情,而且没有办法做到这一点”。

cygwin newlines
  • 1 个回答
  • 801 Views
Martin Hope
pfnuesel
Asked: 2018-10-31 19:26:17 +0800 CST

使用多行分配变量

  • 4

我有一个功能

f(){
    echo 777
}

和一个变量,我将函数的“返回值”分配给它。

x=$(f)

非常简洁!然而,在我的真实代码中,变量和函数的名称要长一些,而且函数也吃位置参数,所以上面的简洁行变得很长。因为我喜欢保持整洁,所以我想将上面的代码分成两行。

x=\
$(f)

仍然有效!但是:保持整洁也意味着尊重缩进,这样就可以得到类似的东西

if foo
    x=\
    $(f)
fi

由于空格,它不再起作用了!有没有好的解决方法?

bash newlines
  • 4 个回答
  • 1992 Views
Martin Hope
nass
Asked: 2018-10-20 08:43:35 +0800 CST

sed 无意中改变了 Windows 的行尾。我怎样才能避免这种情况?

  • 1

我正在 linux 中开发一个可移植的应用程序,我想从一些源文件中删除尾随空格,这些文件具有 windows 样式的行结尾。行尾不应更改为 unix。

使用“sed”的代码很简单,可以在网上找到:

sed -i.bak -E 's/[[:space:]]+$//' myfile

问题是在操作之后,diff文件中的所有行(以及生成的 .bak)都不同。这当然不可能。特定文件只有 1 行带有尾随空格。

使用 hexdump(我使用过od -x myfile)实用程序进行检查,很明显原始文件的第一行以 "0d0a" 结尾,而在 sed 编辑的文件中,它以 "0a" 结尾。

我无法找到有关如何在不影响行尾的情况下执行尾随空格删除的任何信息。有办法吗?

如果“回车”字符是“[[:space:]]”正则表达式组的一部分,那么也许这个

sed -i.bak -E 's/[ \t]+$//' myfile

应该管用。但它没有 - 它创建一个相同的文件。我也尝试过“-e”标志,甚至根本没有标志。生成的文件仍然与原始文件相同,并且没有删除尾随空格。

sed newlines
  • 1 个回答
  • 1105 Views
Martin Hope
bashCypher
Asked: 2018-09-18 18:29:40 +0800 CST

如何在 xargs 中添加换行符

  • 0

我正在尝试编写一个命令来捕获 linux OS (kali) 中的每个许可证并将其与正确的包相关联。基本思想是递归地搜索 /usr/share/doc 以查找“版权”文件,然后搜索该文件并搜索主要许可证“^License”。每个包裹可以有多个。

我正在尝试创建一个 csv,它采用所有包名称并将它们放在每行的第一个字段中,然后在每个许可证逗号分隔的情况下跟随它。

我的基本流程:列出每个包(完成)。制作一个列表,其中每行是找到的许可证的 csv。然后只需粘贴文件 1 和文件 2,boom。

问题,我必须用逗号交换命令输出中的换行符,但是我需要在每次 xargs 迭代的末尾重新插入换行符,以便我的 csv 许可证将与包列表对齐。我已经尝试了几十种方法。当我进行命令替换时,它会中断翻译或回显(不再读\n作换行符。我试过了\\n,没有运气)。

这就是我所拥有的,只需要一种在每个 xargs 循环中放置换行符的方法。

find . -name copyright |xargs -l cat |grep "^License" |tr '\n' ',' 

因此,如果我可以\n在每个 xarg 循环之后插入一些东西,我就完成了。我知道我可以用变量为此编写一个 for 循环。

xargs newlines
  • 1 个回答
  • 2404 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve