相关疑难解决方法(0)

如何用`sed`连接两行?

我正在尝试连接两行iwlist输出。我的grepsed删除前导和尾随空格的命令工作正常,但我无法获得sed删除\n工作的最后一条语句。我错过了什么?

sudo iwlist wlan0 scanning |
   grep -e ESSID -e Signal |
   sed -e 's/^[ \t]*//;s/[ \t]*$//' |
   sed -e 's/dBm\n/dBm /'
Run Code Online (Sandbox Code Playgroud)

正则表达式在vim.

sed pipe

4
推荐指数
1
解决办法
5187
查看次数

当我将数据附加到文件时,curl / wget 添加额外的 ^M

这件事让我心烦意乱。我正在尝试将两个不同的主机文件下载到一个文件中,如果我依次执行此操作,那么一切都很好,但是当我将第一个文件附加到第二个文件时,^M主机文件的每一行都会出现一个奇怪的字符。

在这里举一个真实的例子我正在做什么

wget https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts -O /etc/hosts && curl -s "https://raw.githubusercontent.com/CHEF-KOCH/CKs-FilterList/master/HOSTS/CK's-Spotify-HOSTS-FilterList.txt" >> /etc/hosts
Run Code Online (Sandbox Code Playgroud)

现在/etc/hosts有这些: 在此输入图像描述

但是当我单独这样做时,所以

curl -s "https://raw.githubusercontent.com/CHEF-KOCH/CKs-FilterList/master/HOSTS/CK's-Spotify-HOSTS-FilterList.txt" > /tmp/hosts
Run Code Online (Sandbox Code Playgroud)

现在/tmp/hosts完全正常

在此输入图像描述

为什么会发生这种情况?为什么当我单独下载文件时,我没有得到错误的换行符,但当我将它们合并时,却得到了错误的换行符。它应该是0x0a而不是0x0a0x0d,为什么会发生这种情况?

如果您需要查看正在下载的文件,可以访问命令中的链接:

  1. https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
  2. https://raw.githubusercontent.com/CHEF-KOCH/CKs-FilterList/master/HOSTS/CK%27s-Spotify-HOSTS-FilterList.txt

编辑:我尝试仅将第二个主机文件附加到哑主机文件中,并且发生了同样的情况,因此我们可以忽略第一个文件是问题的原因

linux download wget curl special-characters

2
推荐指数
1
解决办法
2415
查看次数

标签 统计

curl ×1

download ×1

linux ×1

pipe ×1

sed ×1

special-characters ×1

wget ×1