标签: text-processing

用vim删除第一列

我有一个文本文件。

number 1_1 \t number1_2 \t etc
number 2_1 \t number2_2 \t etc
Run Code Online (Sandbox Code Playgroud)

我想删除此文件的第一列(对应于 number1_1、number2_1 等,即每行第一个选项卡之前的数字)。我读了这篇文章,其中提出了删除第一列的解决方案(请参阅彼得的回答)。但是,它对我不起作用,因为数字具有不同的大小,并且我无法重复删除第一列的操作。那我该怎么办?

vim command-line text-processing

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

如何将有效的 JSON 转换为 CSV?

我正在尝试从 JSON 文件中提取信息并将一些内容写入 CSV 文件。

这是我的文字示例

"data":{"headers":{"sender":"frank@abc.com"
"to":"jim@def.com"
"subject":"Help with this project"
"x-received-time":"14144273245408"
"received":"from abc.com ()\r\n        by mail.mail.com with SMTP (Postfix)\r\n        for jim@def.com;\r\n        Mon
"from":"\"Help with this project\" <frank@abc.com>"
"date":"Mon, 27 Oct 2014 09:03:14 -0500"
"id":"1414427328-2345855-frank"
"to":"jim@def.com"
"time":14144273245408
"subject":"Help with this project"
"fromfull":"frank@abc.com"
Run Code Online (Sandbox Code Playgroud)

我想从以下位置获取内容:to、fromfull、id、subject、date 并将其写入 csv 文件,其中 To 是 A 列,fromfull 是 B 列,依此类推。

任何人都可以提供任何帮助吗?这是一个 JSON 响应。

command-line csv text-processing

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

在文件中每一行的末尾附加行号

在一个特殊的情况下,我需要一些文本文件在末尾附加行号。如何实现这一目标?

text-processing

7
推荐指数
1
解决办法
4957
查看次数

访问文本文件的各个行并使用该名称创建单独的文本文件

我有两个文本文件(比如text1.txttext 2.txt),它们的行数相同。前任。text1.txt包含 4 个条目

0127H
0132H
0982H
1772H
Run Code Online (Sandbox Code Playgroud)

text2.txt 包含 4 个条目

stev
mary
beautiful
ugly
Run Code Online (Sandbox Code Playgroud)

现在我的任务是创建 4 个文本文件作为

  • 0127H.txt 包含装有 stev

  • 0132H.txt 包含装有 mary

  • 0982H.txt 包含装有 beautiful

  • 1772H.txt 包含装有 ugly

即第一行text1.txt必须是文件名,相应的条目将是text2.txt.

我恳请您帮助我摆脱所提出的问题。

command-line text-processing

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

如何替换文件中以某个前缀开头的所有字符串

例子:

1:20 2:25 3:0.432 2:-17 10:12
Run Code Online (Sandbox Code Playgroud)

我想替换所有以to开头的字符串。2:2:0

输出:

1:20 2:0 3:0.432 2:0 10:12
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

连接两个文件并用换行符分隔它们

我有两个文件:

k.txt:

3 5 7 9 19 20 
Run Code Online (Sandbox Code Playgroud)

h.txt:

000010
100001
111001
Run Code Online (Sandbox Code Playgroud)

如果我只使用 cat,则没有换行符。我需要一个命令来提供一个如下所示的文件:

3 5 7 9 19 20 
000010
100001
111001
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

替换或添加字符串到文件

我知道 sed 可以像这样替换文本文件中的一段字符串:

sed -i 's/oldstring/newstring/g' test.txt
Run Code Online (Sandbox Code Playgroud)

但是,如果该行存在,我该如何替换它,如果它不存在,如何自动将其添加到新行中?

谢谢。

编辑:感谢您的回复。根据您对评论和回答的要求,这里有更多详细信息:

  • 我想检查旧字符串是否存在,如果存在,则用新字符串替换它。
  • 如果旧字符串不存在,我想在txt文件末尾的新行中添加新字符串
  • 如果同一个字符串出现多次,因为是配置文件,会报错。其他出现的可以在替换第一次后删除。

sed text-processing

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

通过 grep/cut 命令打印特定的单词/数字

我有一个文件test.txt,其中包含以下结果:

service_name1= apple/ball/cat/dog/egg/12.34.56/ball/apple
service_name2= fan/girl/house/ice/joker/23.45.67/fan/girl
Run Code Online (Sandbox Code Playgroud)

等等直到 service_name1500

我想要这样的输出:

egg 12.34.56
joker 23.45.67
Run Code Online (Sandbox Code Playgroud)

依此类推:版本号以及之前的单词。

command-line grep text-processing

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

如何打印 awk 中的最后 5 个字段?

我有 10 个字段,我想从第 5 个字段开始到第 10 个字段并忽略前 5 个字段。我如何在 awk 中使用 NF 来做到这一点?

f1 f2 f3 f4 f5 f6 f7 f8 f9 f10
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10
Run Code Online (Sandbox Code Playgroud)

我只想显示:

f6 f7 f8 f9 f10
c6 c7 c8 c9 c10
Run Code Online (Sandbox Code Playgroud)

command-line bash awk text-processing

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

替换文件中包含撇号的模式

我有一个包含这一行的文本文件:

set stime = '0 0'
Run Code Online (Sandbox Code Playgroud)

我需要将其更改为:

set stime = '0 4'
Run Code Online (Sandbox Code Playgroud)

我试过这些命令:

sed -i 's/original/new/g' file.txt
Run Code Online (Sandbox Code Playgroud)

awk '{gsub(/pattern/,"replacement")}' file 
Run Code Online (Sandbox Code Playgroud)

但它们不起作用。我想这是因为模式中的撇号。我怎样才能正确地做到这一点?

command-line sed awk text-processing

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

标签 统计

text-processing ×10

command-line ×8

awk ×2

sed ×2

bash ×1

csv ×1

grep ×1

vim ×1