标签: text-processing

拆分字符串,提取字符并重新组合在一起

我在的形式串wva/sia/e1bct/e2sv/de/e11。它总是 <Part1>/e<NUM><Part1>/<Part2>/e<NUM>。我想要的是通过保留部分的第一个字母并丢弃斜线和 e 来缩短字符串:

wva/sia/e1 > ws1
bct/e2 > b2
sv/de/e11 > sd11
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 sh 脚本中做到这一点?

编辑:字符串表示作业名称:

[...]
job_name=$1 # e.g. 'wva/sia/e1'
job_name=cut_name(job_name) # e.g. 'ws1'
[...]
Run Code Online (Sandbox Code Playgroud)

command-line bash scripts text-processing

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

如何在两个特殊字符后对文本进行 grep?

我想在>&之后 grep 数据 |。我使用了这个命令:

grep -o '  |.*$'| cut -c5-
Run Code Online (Sandbox Code Playgroud)

但它只是在以下之后提供数据|

                                                              > Aminobenzoate
Asthma                                                        | Atrazine
Autoimmune thyroid disease                                    | Bacterial
B cell receptor signaling pathway                             | Benzoate
Bile secretion                                                | beta-Lactam
                                                              > Biosynthesis
Caffeine metabolism                                           | Caprolactam
Calcium signaling pathway                                     | Carbapenem
Run Code Online (Sandbox Code Playgroud)

期望的输出:

Aminobenzoate
Atrazine
Bacterial
Benzoate
beta-Lactam
Biosynthesis
Caprolactam
Carbapenem
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

如何在 .txt 文件中查找单词并在其后添加文本?

如何在文本文件中找到一个词(例如“/dn”)并在下一行添加另一个词(例如“/period”)?

我想使用 MS DOS 执行它。

我的意思是这个“/dn”(/dn 之后是空格)是一个单词(不是文本的片段,而是整个单词——/dn 之后可以是同一行上的其他单词),然后我想找到它在它之后的下一个新行,而不是替换其他行和其他单词。我的意思是在现有行之间创建一条新行。

例如,如果我有这个输入文件:

/dn
/name
Run Code Online (Sandbox Code Playgroud)

我想要这个输出:

/dn
/period
/name
Run Code Online (Sandbox Code Playgroud)

和“/”符号应该带 dn,而不是没有它。

command-line text-processing

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

星号不适用于 grep

我搜索了ki*按下面的例子,它应该已经回到了前三行。我不确定为什么它在没有ki匹配的情况下返回最后一行。

$ grep "ki*" trial_file.txt
kartik,27,Bangalore,Karnataka
pulkit,25,Bangalore,Karnataka
kit,28,Bangalore,Karnataka
kush,24,Pennsylvania,Philadelphia
Run Code Online (Sandbox Code Playgroud)

command-line regex grep text-processing wildcards

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

如何从文件中删除行直到特定模式?

我需要在文件中查找特定匹配项的行号 - 电子邮件地址 - 然后从文件的开头删除它,直到匹配的行。

例如,假设行号是13807。所以我需要保持13808+行完好无损。

下面是一个例子:

$ cat input
some
lines
before
mail@server.com
and
some
more
afterwards

$ cat output
and
some
more
afterwards
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

如何grep总是从具有特定文本的行改变的文本?

contentJSON is :-
{"id":"0","name":"inc_timestamp","workspaceId":"37158928","infoJSON":"{a:{\"a\":\"bcd\",\"b\":{\"c\":\"d\"}}}","contentJSON":"{\n  \"tasks\": [\n    {\n      \"name\": \"Input\",\n      \"taskType\": \"executeCustomSQLQueryForIncrementalLoad\",\n      \"id\": 10,\n      \"x\": 95,\n      \"y\": 44,\n      \"inputConnectors\": [],\n      \"outputConnectors\": [\n        {\n          \"nodeID\": 11,\n          \"type\": \"Output\",\n          \"name\": \"\"\n        }\n      ],\n      \"argsMap\": {\n        \"taskId\": 10,\n        \"datasetId\": 49053696,\n        \"deltaColumnName\": \"timestamp\",\n        \"deltaColumnDataType\": \"timestamp\",\n        \"deltaColumnValue\": \"null\",\n        \"primaryKeysList\": [\n          \"id\"\n        ]\n      },\n      \"datasetId\": 49053696\n    },\n    {\n      \"name\": \"Output\",\n      \"taskType\": \"saveToES\",\n      \"id\": 11,\n      \"x\": 453,\n      \"y\": 44,\n      \"inputConnectors\": [\n        {\n          \"nodeID\": 10,\n          \"type\": \"Input\",\n          \"name\": \"\"\n        }\n      ],\n      \"outputConnectors\": [],\n      \"argsMap\": {\n        \"bizvizcubeId\": 46759937,\n        \"cfg\": {\n …
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

如何从txt文件中删除特定行

我有一个将数据写入日志文件的 Bash 脚本,然后我从中取出我想要使用该sed命令的东西。这给了我一个文件data.txt。我想知道的是如何删除该data.txt文件中的特定行。

例如:

123
456
789
Run Code Online (Sandbox Code Playgroud)

我想删除第二行,包含456这样我只有

123

789
Run Code Online (Sandbox Code Playgroud)

我试过,sed '2d' data.txt但它不起作用。

我使用此命令data.txtlog.log以下位置创建:

sed -nE '1s/.{1}(.{2}).*/\1/p;' log.log >> data.txt
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

相对获取文件路径

我有两个目录 A 和 B。每个目录都包含一个 zip。

如何将这两个zip文件的路径写入文本文件?

目录系统示例:

FILES/ONE/one.zip
FILES/TWO/two.zip
Run Code Online (Sandbox Code Playgroud)

我想从 FILES 目录运行命令

command-line bash find text-processing

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

为什么我收到错误“缺少字符类的终止 ]”?

我想使用sed.

如果我想删除一个字符串,如何避免错误[?例如:

$ echo '[Om/mystring' | grep -oP '(?<=[Om\\)\w+'
grep: missing terminating ] for character class
Run Code Online (Sandbox Code Playgroud)

command-line regex grep text-processing

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

从文本文件的行中提取一个元素

grep当一行包含与表达式匹配的字符串时,Command将打印一行,这对于搜索指定的内容并不方便。

例如,我有带格式的词汇文件

**word**
1. Definition:
2. Usage
3. Others
Run Code Online (Sandbox Code Playgroud)

我想检索所有单词以在文件中制作单词表

grep '\*\*[^*]*\*\*'
Run Code Online (Sandbox Code Playgroud)

返回大部分内容。

如何使用grep仅捕获word

command-line grep text-processing

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

标签 统计

command-line ×10

text-processing ×10

grep ×3

bash ×2

regex ×2

find ×1

scripts ×1

wildcards ×1