标签: sed

如何在 Linux 中显示文本文件中的某些行?

我想每个人都知道有用的 Linux cmd 行实用程序headtail. head允许您打印文件的前 X 行,tail执行相同的操作但打印文件的末尾。打印文件中间的好命令是什么?类似于middle --start 10000000 --count 20(打印第 10'000'000 行到第 10'000'010 行)。

我正在寻找可以有效处理大文件的东西。我试过了tail -n 10000000 | head 10,它慢得可怕。

linux command-line-interface tail sed

100
推荐指数
3
解决办法
28万
查看次数

bash/sed/awk/etc 删除所有其他换行符

一个 bash 命令输出这个:

Runtime Name: vmhba2:C0:T3:L14
Group State: active
Runtime Name: vmhba3:C0:T0:L14
Group State: active unoptimized
Runtime Name: vmhba2:C0:T1:L14
Group State: active unoptimized
Runtime Name: vmhba3:C0:T3:L14
Group State: active
Runtime Name: vmhba2:C0:T2:L14
Group State: active
Run Code Online (Sandbox Code Playgroud)

我想把它用管道输送到某个东西上,使它看起来像这样:

Runtime Name: vmhba2:C0:T1:L14 Group State: active 
Runtime Name: vmhba3:C0:T3:L14 Group State: active unoptimized
Runtime Name: vmhba2:C0:T2:L14 Group State: active
[...]
Run Code Online (Sandbox Code Playgroud)

即删除所有其他换行符

我试过了,... |tr "\nGroup" " "但它删除了所有换行符并吃掉了其他一些字母。谢谢

bash awk sed

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

如何通过替换文件名中的单词来重命名多个文件?

将 ACDC 替换为 AC-DC

例如我们有这些文件

ACDC - 摇滚乐不是噪音污染.xxx

ACDC - Rocker.xxx

ACDC - Shoot To Thrill.xxx

我希望他们成为:

AC-DC - 摇滚乐不是噪音污染.xxx

AC-DC - Rocker.xxx

AC-DC - 惊险刺激.xxx

我知道 sed 或 awk 用于此操作。我无法用谷歌搜索任何东西,所以我在寻求你的帮助 =) 你能为此任务提供完整的 shell 命令吗?

反馈:OSX 用户的解决方案

files shell rename sed

39
推荐指数
3
解决办法
12万
查看次数

使用 sed 删除字符串周围的开始和结束方括号

我正在 Ubuntu 12.04.1 LTS 上的 bash shell 中运行此命令。我试图一举删除[]字符,即不必第二次通过管道传输到 sed。

我知道方括号在正则表达式中具有特殊含义,所以我通过在前面加上反斜杠来逃避它们。我期待的结果只是字符串,123但方括号仍然存在,我很想知道为什么!

~$ echo '[123]' | sed 's/[\[\]]//'
[123]
Run Code Online (Sandbox Code Playgroud)

bash regex sed

33
推荐指数
2
解决办法
7万
查看次数

如何找出网络上所有机器的mac地址

是否有一些简单的方法可以找出我网络上所有机器的 mac 地址,而不是对每个机器进行 SSH,ifconfig | grep HWaddr如果网络上有 300 台机器,我真的需要一些简单的解决方案。

find grep awk sed linux-networking

31
推荐指数
5
解决办法
9万
查看次数

sed 用一个空格替换所有制表符和空格

我得到了一个如下所示的字符串:

test.de.          1547    IN      SOA     ns1.test.de. dnsmaster.test.de. 2012090701 900 1000 6000 600
Run Code Online (Sandbox Code Playgroud)

现在我想用一个空格替换记录之间的所有制表符/空格,以便我可以轻松地使用它 cut -d " "

我尝试了以下方法:

sed "s/[\t[:space:]]+/[:space:]/g"
Run Code Online (Sandbox Code Playgroud)

和各种变体,但无法正常工作。有任何想法吗?

domain-name-system linux bash sed dig

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

Linux shell命令按行长过滤文本文件

我有一个 30gb 的磁盘分区(认为dd if=/dev/sda1 of=diskimage),我需要从中恢复一些文本文件。数据雕刻工具foremost只能处理具有明确定义的标题的文件,即不能处理纯文本文件,所以我依靠我的好朋友strings.

strings diskimage > diskstrings.txt 生成了一个 3gb 文本文件,其中包含一堆字符串,其中大部分是无用的东西,与我真正想要的文本混合在一起。

大多数垃圾往往是非常长的,不间断的胡言乱语。我感兴趣的东西保证小于16kb,所以我将按行长过滤文件。这是我用来执行此操作的 Python 脚本:

infile  = open ("infile.txt" ,"r");
outfile = open ("outfile.txt","w");
for line in infile:
    if len(line) < 16384:
        outfile.write(line)
infile.close()
outfile.close()
Run Code Online (Sandbox Code Playgroud)

这有效,但供将来参考:是否有任何神奇的单行咒语(想想awk, sed)可以按行长度过滤文件?

awk sed filter strings

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

如何解析ini文件并将其转换为bash数组变量?

我正在尝试将 ini 文件转换为 bash 数组变量。示例ini如下:

[foobar]
session=foo
path=/some/path

[barfoo]
session=bar
path=/some/path
Run Code Online (Sandbox Code Playgroud)

所以这些变成:

session[foobar]=foo
path[foobar]=/some/path
session[barfoo]=bar
Run Code Online (Sandbox Code Playgroud)

等等。

现在,我只能想出这个命令

awk -F'=' '{ if ($1 ~ /^\[/) section=$1; else if ($1 !~ /^$/) print $1 section "=" $2 }'
Run Code Online (Sandbox Code Playgroud)

此外,另一个问题是,它没有考虑附近的空间=。我认为sed可能更适合这项工作,但我不知道如何在sed.

那么知道如何做到这一点吗?

scripting configuration bash awk sed

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

从文件中读取指定范围的行

我有一个包含 100000 行的文件,我如何在 linux 下从第 5555 行到第 7777 行获取行。

谢谢大家。

linux files sed

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

如何使用sed删除“]”后一行中的所有字符?

如何使用sed删除“]”后一行中的所有字符?

我正在尝试使用 cat、awk 来 grep 一些文件。现在我的 oneliner 返回给我类似的东西

121.122.121.111] other characters in logs from sendmail.... :)

现在我想删除“]”字符之后的所有内容(带有“]”)。我只想121.122.121.111在我的输出中。

我在谷歌上搜索 sed 的特定示例,但在这些示例中没有找到任何帮助。

linux awk sed

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