您好,我需要在 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) 如何在 /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) 如何在 csv 文件中截断 1000 行后?目标是仅保留文件中的前 1000 行并删除所有其他行。
我想要的是像这样指定一定数量的行,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) 如何在第一次出现指定字符串时将文本文件分成两部分?我查看了 split 命令,但它没有这样做。
过去我使用脚本来做到这一点。但是效率不高,还得把脚本移到不同的系统上。我想知道是否有更好的方法来实现这一目标。
我正在寻找一个 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)
我的意思是,我需要第一个包含数字的字段,而不是最后一个,并且所有提取的数字都应该用逗号 ( ,)分隔。
有人可以帮我拿吗?
在一个大(> 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但这项任务超出了我的范围。
任何建议如何实现这一目标?
我有一个 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”)。
有可能实现吗?
我该如何转换:
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 会更受欢迎
我想用“|”分割文本卷 作为空间并获得第二次出现即;值 - 'test2'
volumes=|test1|test2
echo $volumes | tr "|" "\n"
Run Code Online (Sandbox Code Playgroud)
上面的命令分成每一行..我可以遍历它并获取值但想要最有效的方式。