有没有办法删除以某些字符串开头的行。
我有这个 youtube-dl 代码
youtube-dl --extract-audio --audio-quality 0 --newline --audio-format mp3 https://www.youtube.com/playlist?list=PL1C815DB73EC2678E
Run Code Online (Sandbox Code Playgroud)
它的结果是这样的
[youtube:playlist] PL1C815DB73EC2678E: Downloading webpage
[download] Downloading playlist: Less than 1 minute
[youtube:playlist] playlist Less than 1 minute: Collected 4 video ids (downloading 4 of them)
[download] Downloading video 1 of 4
[youtube] KNLwsqzFfNg: Downloading webpage
[youtube] KNLwsqzFfNg: Extracting video information
[youtube] KNLwsqzFfNg: Downloading DASH manifest
[download] Destination: _1 min. - Amendes pour les particules du LHC-KNLwsqzFfNg.m4a
[download] 0.4% of 231.51KiB at 6.10KiB/s ETA 00:30
[download] 1.1% of …Run Code Online (Sandbox Code Playgroud) 我有一个字符串
00:28:04 /usr/lib/jvm/jre/bin/java -DJDBC_CONNECTION_STRING= -Dspring.profiles.active=qa -XX:MaxPermSize=256
Run Code Online (Sandbox Code Playgroud)
并要提取的词qa后面-Dspring.profiles.active。
我将字符串保存在一个文件 text.txt 中,只是为了演示它。
当我做
grep -r -o "spring.profiles.active=" text.txt
Run Code Online (Sandbox Code Playgroud)
结果是 spring.profiles.active=
这个词并不总是qa,它可能是prod或dev。
我想做的是找到这个词spring.profiles.active,然后在=提取那个词之后。
我想为此编写 shell 脚本,因为我使用这个词来配置服务器上的其他项目。
这可能吗,如果可以,我该怎么做。
我知道使用 grep 我可以使用字段-A并-B从匹配中提取上一行和下一行。
但是,他们根据指定的行数在匹配之间拉入所有行。
grep -r -i -B 5 -A 5 "match"
Run Code Online (Sandbox Code Playgroud)
我想只收到5次在比赛之前线和5日线的比赛,除了匹配的行之后,并没有得到之间的界线。
有没有办法做到这一点grep?
我想在匹配之前显示所有行,例如不仅是 10、7 或 14 行,如如何在 bash 中的 grep 结果之前/之后获取行中所述?.
我该怎么做?是否包含匹配的行并不重要。
例如,而不是:
... | grep -B 10 -- "foo"
Run Code Online (Sandbox Code Playgroud)
我想要:
... | grep -B -- "foo"
Run Code Online (Sandbox Code Playgroud)
但是这最后的代码不起作用。
您如何计算当前目录中所有文件中术语的每次出现?- 和子目录(?)
我已经读过要做到这一点,你会使用grep;确切的命令是什么?
另外,是否可以使用其他一些命令进行上述操作?
我有大文件文本(几乎 3GB) - 它是一个日志文件。我想从这个文件中获取与一系列日期相对应的文本行,从 7 月 13 日到 7 月 19 日。我的日志格式是:
2016-07-12 < ?xml version>
2016-07-13 < ?xml version>
2016-07-18 < ?xml version>
2016-07-18 < ?xml version>
2016-07-19 < ?xml version>
2016-07-20 < ?xml version>
sample text sample text
sample text sample text
sample text sample text
2016-07-20 < ?xml version>
sample text sample text
2016-07-20 < ?xml version>
Run Code Online (Sandbox Code Playgroud)
所以在grep/sed之后应该是这样输出的:
2016-07-13 < ?xml version>
2016-07-18 < ?xml version>
2016-07-18 < ?xml version>
2016-07-19 < ?xml …Run Code Online (Sandbox Code Playgroud) 我想确切地知道这个特定命令是什么
ps -ef|grep processname
Run Code Online (Sandbox Code Playgroud)
手段和它是如何工作的。我知道这应该与processname我们要搜索的内容相关联,但我没有得到前缀部分;做什么-ef和|(管道)做什么以及-ef|grep作为一个整体是如何工作的。在谷歌上搜索了一下,我发现grep它用于搜索目的,但我很想简单解释一下这个命令设置的工作原理。
如何在 Ubuntu 中搜索包含特定文本的 *.odt 或 *.doc 文件?
我使用grep -rl <text to search for>,但这仅适用于文本文件。
注意:使用 grep(例如 searchmonkey)的解决方案将不起作用,因为 *.doc 或 *.odt 文件具有特殊格式。
我经常使用 grep 来查找具有如下特定条目的文件:
grep -R 'MyClassName'
Run Code Online (Sandbox Code Playgroud)
好消息是它返回文件、它们的内容并将找到的字符串标记为红色。不好的是,我也有很大的文件,其中整个文本都写在一个大的单行中。现在,在这些大文件中查找文本时,grep 输出过多。有没有办法将输出限制为左侧和右侧的 5 个单词?或者将输出限制为左右各 30 个字母?
当我运行grep "keyword" -n并获得以下结果列表时:
a/b/c:10: keyword
a/b/c:70: keyword
a/b/d:50: keyword
Run Code Online (Sandbox Code Playgroud)
如何打开找到的行中的文件之一(比如列表中的第二个)?
我现在只需使用鼠标复制输出,然后复制它vim,然后添加+我复制的行号。(这意味着我vim a/b/c +70使用鼠标副本来获取文件名,并使用另一个鼠标副本来获取行号[或者我只是手动复制它,当它足够短时])
有没有办法用键盘快捷键来做到这一点?
grep ×10
command-line ×9
awk ×3
sed ×3
bash ×1
directory ×1
files ×1
libreoffice ×1
ps ×1
vim ×1
youtube-dl ×1