检查输出
perl -e 'use Term::ANSIColor; print color "white"; print "ABC\n"; print color "reset";'
Run Code Online (Sandbox Code Playgroud)
在文本编辑器(例如,vi)中显示以下内容:
^[[37mABC
^[[0m
Run Code Online (Sandbox Code Playgroud)
如何从输出文件中删除 ANSI 颜色代码?我想最好的方法是通过各种流编辑器来传输输出。
以下不起作用
perl -e 'use Term::ANSIColor; print color "white"; print "ABC\n"; print color "reset";' | perl -pe 's/\^\[\[37m//g' | perl -pe 's/\^\[\[0m//g'
Run Code Online (Sandbox Code Playgroud) 如何以秒为单位获得视频时长?
我试过的:
ffmpeg -i file.flv 2>&1 | grep "Duration"
Duration: 00:39:43.08, start: 0.040000, bitrate: 386 kb/s
mediainfo file.flv | grep Duration
Duration : 39mn 43s
Run Code Online (Sandbox Code Playgroud)
这是什么接近,但它不是那么准确,2383 是 39.71 分钟
ffmpeg -i file.flv 2>&1 | grep "Duration"| cut -d ' ' -f 4 | sed s/,// | sed 's@\..*@@g' | awk '{ split($1, A, ":"); split(A[3], B, "."); print 3600*A[1] + 60*A[2] + B[1] }'
2383
Run Code Online (Sandbox Code Playgroud) 我刚刚开始学习 awk,我对周围的所有版本都有些困惑。在所有类 Unix 系统上是否有任何“版本”?就像,你知道,普通的 vi?标准 awk 是否支持 -F 选项?
使用仅包含注释(以 # 开头)和 VARIABLE=value 行的单个输入文件,是否可以在找到时替换单个变量的值,否则,如果未找到,则将该对附加到文件末尾?
我当前的方法是在第一遍中删除它,然后在第二遍中将其附加到文件的末尾,但这种方法会弄乱行顺序(也是两个不同的命令):
sed -r "/^FOOBAR=.*$/d" -i samefile &&
sed -r "$ a\FOOBAR=newvalue" -i samefile
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,即。在单个 sed 行中保持行序?如果其他一些实用程序(awk,...)这样做,我会把它接管 sed。
我正在寻找一行返回正在运行的进程的 pid 的行。
目前我有:
ps -A -o pid,cmd|grep xxx|head -n 1
这将返回拳头pid, command。我只需要输出中的第一个数字,而忽略其余部分。我想sed或awk会在这里提供帮助,但我对他们的经验有限。
另外,这还有一个问题,如果 xxx 没有运行,它会返回 grep 的 pid。
有一行真的很重要,因为我想重用输出来做其他事情,比如杀死那个进程。
我有带有空格分隔字符串 (2-5) 的大文本文件。字符串可以包含“'”或“-”。我想用管道代替第二个空格。
最好的方法是什么?
使用 sed 我在想这个:
sed -r 's/(^[a-z'-]+ [a-z'-]+\b) /\1|/' filename.txt
Run Code Online (Sandbox Code Playgroud)
任何其他/更好/更简单的想法?
我有以下降价文档:
Heading-a
==========
---text---
Heading-b
------------
--- text ---
Heading-c
----------
--- text---
Heading-d
=======
--- text----
Heading-e
---
...
Run Code Online (Sandbox Code Playgroud)
我想用它制作一个可点击的目录,类似于LaTex的方式,但找不到可以做到这一点的工具,这表明我们应该构建一个。
该工具应收集“H1”标题和“H2”标题,以便将数字 1 分配给Heading-a数字 1.1。到Heading-b1.2。到Heading-c, 2. 到Heading-d, 2.1. 对Heading-e等,这样,我们应该得到的内容如下表:
1. Heading-a
1.1. Heading-b
1.2. Heading-c
2. Heading-d
2.1. Heading-e
Run Code Online (Sandbox Code Playgroud)
如何使用 Python/AWK/SED 执行此操作?
如果我想知道 awk 的版本,我会得到以下信息:
$ awk --version
awk: not an option: --version
Run Code Online (Sandbox Code Playgroud)
签入man awk我看到我的 awk 是
mawk - 模式扫描和文本处理语言
我想使用 awk 从 SQL 输出中提取信息,如下所示:
(计数(不同的服务器类)='2')
并且需要提取数字,在这个例子中是2。
我想做类似以下的事情,但无法弄清楚如何转义单引号:
<sqlCommand> | awk 'BEGIN{FS="'"}{print $2}'
Run Code Online (Sandbox Code Playgroud)
如何在 awk 中获得文字单引号作为字段分隔符?
我有一个长文本文件
gallery-dl -g -i w4b027.txt >
gallery-dl -g -i a4b028.txt >
gallery-dl -g -i b4b029.txt >
gallery-dl -g -i c4b030.txt >
gallery-dl -g -i d4b031.txt >
gallery-dl -g -i w4b032.txt >
gallery-dl -g -i w4b033.txt >
gallery-dl -g -i w4b034.txt >
gallery-dl -g -i w4b035.txt >
gallery-dl -g -i w4b036.txt >
gallery-dl -g -i w4b037.txt >
gallery-dl -g -i w4b038.txt >
gallery-dl -g -i w4b039.txt >
gallery-dl -g -i w4b040.txt >
Run Code Online (Sandbox Code Playgroud)
我想成功
gallery-dl -g -i a4b027.txt > a4b027x.txt
gallery-dl -g …Run Code Online (Sandbox Code Playgroud)