标签: text-processing

高效搜索排序文件

我有一个大文件,每一行都包含一个字符串。我希望能够快速确定文件中是否有字符串。理想情况下,这将使用二进制斩波类型算法来完成。

一些谷歌搜索揭示了look带有-b标志的命令,该标志承诺使用二进制搜索算法定位和输出以给定前缀开头的所有字符串。不幸的是,它似乎无法正常工作,并为我知道在文件中的字符串返回空结果(它们由等效grep搜索正确返回)。

有谁知道有效搜索此文件的另一种实用程序或策略?

command-line grep text-processing

13
推荐指数
1
解决办法
6427
查看次数

:a;$!N; 是什么意思?在 sed 命令中?

$ (echo hello; echo there) | sed ':a;$!N;s/\n/string/;ta'
hellostringthere
Run Code Online (Sandbox Code Playgroud)

上面的sed命令用字符串“string”替换换行符。但我不知道:a;$!N;s/\n/string/;ta单引号内的含义。我知道中间部分s/\n/string/。但我不知道 first ( :a;$!N;) 和 last ( ta) 部分的功能。

sed text-processing

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

在输出中打印特定部分

让我们假设有一个命令,例如:

cat /boot/config-3.19.0-32-generic | grep CONFIG_ARCH_DEFCONFIG
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是:是否有任何命令只会打印引号内的内容,即" "

你能解释一下这个命令吗?谢谢!提前。

command-line text-processing

12
推荐指数
5
解决办法
7148
查看次数

使用 sed 进行文本操作

目前,我有多个文本文件,内容如下(多行):

565 0 10 12 23 18 17 25
564 1 7 12 13 16 18 40 29 15
Run Code Online (Sandbox Code Playgroud)

我希望将每一行更改为以下格式:

0 565:10:1 565:12:1 565:23:1 565:18:1 565:17:1 565:25:1
1 564:7:1 564:12:1 564:13:1 564:16:1 564:18:1 564:40:1 564:29:1 564:15:1
Run Code Online (Sandbox Code Playgroud)

有没有办法使用 sed 执行上述操作?还是我需要求助于 Python?

command-line sed text-processing

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

在匹配前显示所有行

我想在匹配之前显示所有行,例如不仅是 10、7 或 14 行,如如何在 bash 中的 grep 结果之前/之后获取行中所述?.

我该怎么做?是否包含匹配的行并不重要。

例如,而不是:

... | grep -B 10 -- "foo"
Run Code Online (Sandbox Code Playgroud)

我想要:

... | grep -B -- "foo"
Run Code Online (Sandbox Code Playgroud)

但是这最后的代码不起作用。

command-line grep text-processing

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

如何有选择地从文件中复制详细信息并将其粘贴到新文件中?

我有一个包含我的个人详细信息 (.txt) 的文件。如何通过终端仅从文件中复制一些详细信息并将其放入新.txt文件中?

例如,如果这是文件的内容:

name : farah age : 23 phone number : 0123 education : degree
Run Code Online (Sandbox Code Playgroud)

如何仅复制年龄和电话号码并将其输出到新.txt文件?

command-line text-processing

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

我如何“cat”一个文本文件,但从底部而不是顶部开始

我有一个大约 37MB 的非常大的文本日志文件。
使用cat file | more我可以一次查看一页的文件内容。

问题是这总是从顶部开始 - 旧条目。
如何使它从底部开始,然后将较新的条目逐页向上移动?

text-processing cat

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

如何从行转换为列?

我有一个 .txt 文件,其中的数字是这样排序的(在同一行):

106849_01373    106849_01967    106850_00082    23025.7_01059   
Run Code Online (Sandbox Code Playgroud)

我想像这样转换它们:

106849_01373
106849_01967
106850_00082
23025.7_01059
Run Code Online (Sandbox Code Playgroud)

我不知道要使用哪个命令。有人可以帮我解决这个问题吗?

command-line text-processing

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

11
推荐指数
4
解决办法
1565
查看次数

如何使用 shell 脚本将文本文件中的值打印到列文件

我有一个来自运行 shell 脚本的 output.txt,如下所示:

abc.txt
errorstatus1
Fri Nov 11 02:00:09 2016
def.txt
errorstatus2.txt
Sat Nov 12 03:00:09 2016
Run Code Online (Sandbox Code Playgroud)

文本文件以相同的方式一行一行地有多个条目。我想将这些值打印到列中:文件名、状态和时间戳,如下所示:

Filename      Status        Timestamp
abc.txt     errorstatus1   Fri Nov 11 02:00:09 2016
def.txt     errorstatus2   Sat Nov 12 03:00:09 2016
Run Code Online (Sandbox Code Playgroud)

command-line bash scripts text-processing

11
推荐指数
3
解决办法
6845
查看次数

标签 统计

text-processing ×10

command-line ×8

grep ×2

sed ×2

bash ×1

cat ×1

scripts ×1