标签: text-processing

如何按字母顺序复制和组合多个 .txt 列表?

我有几个.txt包含来自不同手机的联系人列表的文件,如何组合这些文件同时避免使用终端按字母顺序重复?

例子:

联系人1.txt:

John
Bob
Steve
Run Code Online (Sandbox Code Playgroud)

联系人2.txt:

Amy
John
Run Code Online (Sandbox Code Playgroud)

输出.txt:

Amy
Bob
John
Steve
Run Code Online (Sandbox Code Playgroud)

command-line files text-processing

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

出现模式时将文本文件拆分为多个,在linux中使用命令行

我想将一个文本文件分成几个。每次图案出现时都会生成一个新文件。示例:模式将是 PAT

原文件内容:

PAT --example html http://askubuntu.com/page01
ABC
DEF

PAT --example html http://askubuntu.com/page02
GHI
JKL

PAT --example html http://askubuntu.com/page03
MNO
PQR
Run Code Online (Sandbox Code Playgroud)

(等等)

原始文件被称为 original.txt 我想得到这样的文件:

$ cat page01.txt
ABC
DEF
$ cat page02.txt
GHI
JKL
$ cat page03.txt
MNO
PQR
Run Code Online (Sandbox Code Playgroud)

(等等)

理想情况下,使用 grep、awk 等命令......文件的重命名是次要的,但有助于对它们进行分类。提前致谢。

command-line text-processing

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

使用 `awk` 打印唯一的单词、出现的总次数和总和

如何使用awk.

我正在使用awk

awk -F, '{sum[$1]+=$2} END{for (x in sum) print x, sum[x]}' inFile
Run Code Online (Sandbox Code Playgroud)

我可以修改上面的命令来打印唯一单词的总出现次数吗?类似于以下示例输入的以下结果:

结果(打印结果的顺序无关紧要):

A 2 25 
B 1 12 
C 3 18
Run Code Online (Sandbox Code Playgroud)

输入:

A,15
C,13
C,4
A,10
B,12
C,1
Run Code Online (Sandbox Code Playgroud)

我可以添加另一个数组来分别计算它们,但我认为应该有另一种方法来使用相同的数组来打印它。

数组中是否有任何索引sum来存储看到的总单词数?

command-line awk text-processing

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

用于多个目录中的文本文件的 grep 命令

我在特定目录 (main_directory) 中有 24 个目录。每个 24 目录都有一个名为 DATA.txt 的文本文件。

我需要使用 grep 命令为每个文本文件提取以下特定模式;

2* x  = 3800689.6402     y  = 882077.3636     z  = 5028791.2953
Run Code Online (Sandbox Code Playgroud)

2* x =部分对于所有 DATA.txt 都是常量。其他数字是可变的。我需要为每个 DATA.txt 提取以上行并将它们保存到另一个文本文件中。我可以在这个过程中使用哪个脚本?

command-line grep text-processing

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

合并 2 个命令

我需要编写一个 shell 脚本来将文件中的字符转换为小写并将非字母字符替换为_.

我对上述两个命令都有单独的命令。如何将文件作为参数并完成上述操作,即输出将只有小写字符,而非 alpha 将替换为_(下划线)?

command-line text-processing

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

从不一致的文本文件创建csv

我在一个文件中包含结构松散的记录,由 3 或 4 行文本组成(大部分)由空行分隔。并非所有记录都有空行分隔符,但每条记录的最后一行都以“已添加”一词开头。我想生成一个 csv 文件,每条记录在一行上,前面是行号。到目前为止,我只能生成由任意数量的空格和冗余逗号分隔的所有记录的串联。

从逻辑上讲,我试图实现以下目标:

读取行,如果行以“已添加”开头,则在末尾保留换行符,
否则将“换行符”替换为“,”,
或者如果行为空白,则将其删除
endif

样本数据:

Peter Green  
Space Monkey at Area 51  
Joined  
Added by SF 3 weeks ago  
Will Rossiter  
Joined  
Added by SF 3 weeks ago

Dean Matthews  
Guitarist at Blues  
Joined  
Added by SF 3 weeks ago  
Hobbit Mak  
Farnborough, United Kingdom  
Joined  
Added by SF 3 weeks ago  

Keneth W Moorfield  
THE STOREMAN  
Joined  
Added by SF 3 weeks ago  
Mick Georgious  
Software Engineer  
Joined  
Added by SF …
Run Code Online (Sandbox Code Playgroud)

command-line sed awk csv text-processing

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

将文本文件按顺序复制到另一个新的文本文件中

假设我有三个文本文件,data_1、data_2 和 data_3。首先,我需要将里面的 data_1 复制到另一个新的文本文件 (new_data)。然后我需要将 data_2 添加到 new_data (包括 data_1)。最后我需要将 data_3 添加到 new_data (包括 data_1 和 data_2)。

例如,

data_1=  10 10 10
         15 15 15

data_2=5 5 5


data_3=  11 11 11
         12 12 12


new_data=   10 10 10
            15 15 15
             5  5  5
            11 11 11
            12 12 12
Run Code Online (Sandbox Code Playgroud)

如何以顺序方式为多个文本文件执行此任务?

scripts text-processing

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

如何将一个文件的内容插入到另一个文件中的确切位置

我有两个文件。第一个包含 html 代码:

document.body.innerHTML = document.body.innerHTML.replace('<textarea rows="3"></textarea>', '<textarea rows="3"> inserthere </textarea>');  
Run Code Online (Sandbox Code Playgroud)

第二个文件看起来像这样:

A B C D E F G  
Run Code Online (Sandbox Code Playgroud)

我需要将第二个文件的内容放入html代码中inserthere。所以,我想要的输出:

document.body.innerHTML = document.body.innerHTML.replace('<textarea rows="3"></textarea>', '<textarea rows="3"> A B C D E F G </textarea>');  
Run Code Online (Sandbox Code Playgroud)

或者

document.body.innerHTML = document.body.innerHTML.replace('<textarea rows="3"></textarea>', '<textarea rows="3"> A B C D E F Ginserthere </textarea>');  
Run Code Online (Sandbox Code Playgroud)

我试过的:

sed  -e '/inserthere/r file2' -e 'x;$G' file1 > file3 

sed -n -i -e '/inserthere/r file2' -e 1x -e '2,${x;p}' -e '${x;p}' file1  

f2="$(<file2)"
awk -vf2="$f2" '/inserthere/{print f2;print;next}1' file1 …
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

如何在 Ubuntu 终端中使用 grep 从 txt 文件中获取特定单词

我有一个txt文件。在那个文件中,我想过滤一个特定的词。

例子:

$PILOT_FIRSTNAME $PILOT_LASTNAME. This is the final confirmation for this flight.
Run Code Online (Sandbox Code Playgroud)

我想要这样的输出:

PILOT_FIRSTNAME

PILOT_LASTNAME
Run Code Online (Sandbox Code Playgroud)

带 的所有单词是什么$,那个单词只取?

command-line text-processing

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

从文本中提取某些值

我有一个文本文件:

[31/May/2016:11:58:29-0500]/segment?city=london&language=en&x=12345&y=6789&z=1
[31/May/2016:11:59:15-0500]/segment?language=en&city=madrid&x=4589.4583&y=4865.5465&z=3
[31/May/2016:12:05:13-0500]/segment?city=london&language=en&x=12345&y=6789&z=1
[31/May/2016:12:15:13-0500]/segment?city=london&language=en&x=12345&y=6789&z=1
[31/May/2016:12:26:53-0500]/segment?language=en&city=newyork&x=45724.75575&y=424424.77474&z=3
Run Code Online (Sandbox Code Playgroud)

我需要按顺序提取某些值:日期、城市名称、语言、x、y、z。请注意,在某些行中有不同的顺序,并且在未来的文件顺序中也可能会有所不同。

输出应如下所示:

31/May/2016:11:58:29-0500 london en 12345 6789 1
31/May/2016:11:59:15-0500 madrid en 589.4583 4865.5465 3
31/May/2016:12:05:13-0500 london en 12345 6789 1
31/May/2016:12:15:13-0500 london en 12345 6789 1
31/May/2016:12:26:53-0500 newyork en 45724.75575 424424.77474 3
Run Code Online (Sandbox Code Playgroud)

如果可以编辑逗号甚至更好,因为某个 csv 标准输出看起来像这样:

31/May/2016:11:58:29-0500,london,en,12345,6789,1
31/May/2016:11:59:15-0500,madrid,en,589.4583,4865.5465,3
31/May/2016:12:05:13-0500,london,en,12345,6789,1
31/May/2016:12:15:13-0500,london,en,12345,6789,1
31/May/2016:12:26:53-0500,newyork,en,45724.75575,424424.77474,3
Run Code Online (Sandbox Code Playgroud)

text-processing

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

标签 统计

text-processing ×10

command-line ×8

awk ×2

csv ×1

files ×1

grep ×1

scripts ×1

sed ×1