标签: text-processing

如何在字符串和数字模式周围添加双引号?

您好,我需要在 300k 行的模式中添加双引号。我正在尝试使用 sed,并且在这里阅读了多个查询和其他来源,但我似乎无法理解它的语法。

我有:

chr1    StringTie       exon    191964  192299  1000    -       .       gene_id MSTRG.201; transcript_id MSTRG.201.53; exon_number 2;
chrY    StringTie       exon    26420508        26420531        1000    +       .       gene_id MSTRG.49889; transcript_id MSTRG.49889.11; exon_number 1;
Run Code Online (Sandbox Code Playgroud)

我需要:

chr1    StringTie       exon    191964  192299  1000    -       .       gene_id "MSTRG.201"; transcript_id "MSTRG.201.53"; exon_number 2;
chrY    StringTie       exon    26420508        26420531        1000    +       .       gene_id "MSTRG.49889"; transcript_id "MSTRG.49889.11"; exon_number 1;
Run Code Online (Sandbox Code Playgroud)

我使用 sed 如下:

sed 's/MSTRG./"MSTRG."/g' filename
Run Code Online (Sandbox Code Playgroud)

但我只能得到:

chr1    StringTie       exon    191964  192299  1000    -       .       gene_id "MSTRG."201; transcript_id …
Run Code Online (Sandbox Code Playgroud)

command-line sed text-processing

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

如何从 /var/log/auth.log 获取唯一的 IP 地址?

如何在 /var/log/auth.log 中仅显示唯一的 IP 地址?我的服务器经常受到攻击,虽然我设置了fail2ban,但请求仍然不断出现。所以我开始写信给 ISP 要求关闭帐户,这可能会有所帮助,但是攻击太多了……无论如何,

我使用此命令对今天的点击进行排序:$grep -e 'ruser \| rhost' auth.log | grep -e 'Jun 9' | sort -k 14 | less 其数千次攻击...或暴力尝试。

以下是 auth.log 中的一些 relivent 行:

...
Jun  9 10:08:35 nan sshd[23397]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=103.109.161.53
Jun  9 10:08:51 nan sshd[23401]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=103.109.161.53
Jun  9 10:09:07 nan sshd[23428]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=103.109.161.53
Jun  9 10:01:59 nan sshd[23216]: pam_unix(sshd:auth): …
Run Code Online (Sandbox Code Playgroud)

command-line grep awk text-processing

5
推荐指数
1
解决办法
1031
查看次数

删除一定行数之后的所有行

如何在 csv 文件中截断 1000 行后?目标是仅保留文件中的前 1000 行并删除所有其他行。

command-line text-processing

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

如何从“while read”中的特定行数开始读取文件?

我想要的是像这样指定一定数量的行,lineNumberIs=3并在读取时告诉从第三行开始,或者什么行号并在病房之后获取行以便稍后在获取的行上执行一些命令 类似的东西

 while read line from $lineNumberIs
    do
    **some commands not just echo nor printing on the screen** 
    done < $dataFile
Run Code Online (Sandbox Code Playgroud)

command-line bash text-processing

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

在指定字符串第一次出现时将文件一分为二

如何在第一次出现指定字符串时将文本文件分成两部分?我查看了 split 命令,但它没有这样做。

过去我使用脚本来做到这一点。但是效率不高,还得把脚本移到不同的系统上。我想知道是否有更好的方法来实现这一目标。

text-processing

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

使用bash从文本文件中提取数据

我正在寻找一个 bash 脚本。在文本文件中,我有如下数据:

+------+------
| Id   | User | 
+------+------+
| 8192 | root | 
| 8194 | root |
| 8202 | root |
| 8245 | root | 
| 8434 | root |  
| 8754 | root | 
| 8761 | root | 
| 8762 | root | 
| 8764 | root | 
| 8771 | root | 
+------+------+
Run Code Online (Sandbox Code Playgroud)

我想提取这样的数据:

8192,8194,8202,8245,8434,8754,8761,8762,8764
Run Code Online (Sandbox Code Playgroud)

我的意思是,我需要第一个包含数字的字段,而不是最后一个,并且所有提取的数字都应该用逗号 ( ,)分隔。

有人可以帮我拿吗?

bash text-processing

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

删除 csv 文件中整数周围的引号

在一个大(> 1 GB)的csv文件中,我有类似的东西

"34432", "name", "0", "very long description"
Run Code Online (Sandbox Code Playgroud)

但与其说是我想要

34432, "name", 0, "very long description".
Run Code Online (Sandbox Code Playgroud)

我正在查看,sed但这项任务超出了我的范围。

任何建议如何实现这一目标?

command-line scripts sed text-processing

4
推荐指数
3
解决办法
6407
查看次数

从所有行中删除字母和点

我有一个 CSV,time其中包含不同程序的命令输出,包括执行的 ID。

因此,我的文件包含以下形式的记录:

ID,execution_time
Run Code Online (Sandbox Code Playgroud)

示例记录:

345,0m0.047s
Run Code Online (Sandbox Code Playgroud)

我只需要执行次数和秒数。

因此上述记录需要

345,0047 (没有“0m”、“.”和“s”)。

有可能实现吗?

text-processing

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

如何提取包含特定单词的括号之间的文本?

我该如何转换:

foo (blah) (bar 80)
foo (cats) (blat 92)
Run Code Online (Sandbox Code Playgroud)

对此:

foo bar 80
foo blat 92
Run Code Online (Sandbox Code Playgroud)

我想保留所有不在括号中的文本。

我只想提取括号之间包含字符串“bar”或“blat”的文本。

不包含“blat”或“bar”的括号对应该被忽略。

sed 或 awk 会更受欢迎

command-line text-processing

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

bash 在拆分后第二次出现

我想用“|”分割文本卷 作为空间并获得第二次出现即;值 - 'test2'

volumes=|test1|test2
echo $volumes | tr "|" "\n"
Run Code Online (Sandbox Code Playgroud)

上面的命令分成每一行..我可以遍历它并获取值但想要最有效的方式。

command-line text-processing

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

标签 统计

text-processing ×10

command-line ×7

bash ×2

sed ×2

awk ×1

grep ×1

scripts ×1