标签: awk

带有 zenity 进度条的 youtube-dl 文件下载进度

如何将 youtube-dl 文件下载进度百分比添加到 zenity 进度条

示例代码(只是一个例子,不是一个有效的)

#!/bin/sh
(
   progress=$(youtube-dl --extract-audio --audio-quality 0 --newline --audio-format mp3 https://www.youtube.com/playlist?list=PL1C815DB73EC2678E)
per=$(awk '{print perc}' <<<$progress)
time=$(awk '{print time}' <<<$progress)
file_no=$(awk '{print file_no}' <<<$progress) #only for playlist, example=Downloading video 1 of 4 

echo "$per" ; sleep 1
echo "# $file_no \n Time Left: $time" ; sleep 1

) |
zenity --progress \
  --title="Download" \
  --text="Downloading..." \
  --percentage=0

if [ "$?" = -1 ] ; then
        zenity --error \
          --text="Download cancelled."
fi
Run Code Online (Sandbox Code Playgroud)

我已使用此代码获取下载进度

youtube-dl --extract-audio --audio-quality 0 …
Run Code Online (Sandbox Code Playgroud)

bash zenity sed awk youtube-dl

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

awk 编程:根据模式将大文件拆分为小文件

我有一个大文件 input.dat,如下所示。

kpoint1 :       0.0000    0.0000    0.0000
  band No.  band energies     occupation 
      1     -52.8287      2.00000
      2     -52.7981      2.00000
      3     -52.7981      2.00000
 kpoint2 :       0.0000    0.0000    0.0000
  band No.  band energies     occupation 
      1     -52.8287      2.00000
      2     -52.7981      2.00000
      3     -52.7981      2.00000
Run Code Online (Sandbox Code Playgroud)

我需要将文件拆分为 2 个较小的文件,如下所示

kpoint1.dat

kpoint1 :       0.0000    0.0000    0.0000
  band No.  band energies     occupation 
      1     -52.8287      2.00000
      2     -52.7981      2.00000
      3     -52.7981      2.00000
Run Code Online (Sandbox Code Playgroud)

kpoint2.dat

kpoint1 :       0.0000    0.0000    0.0000
  band No.  band energies     occupation 
      1     -52.8287      2.00000 …
Run Code Online (Sandbox Code Playgroud)

command-line bash awk text-processing

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

无法终止容器:foo:容器 foo 未运行

也许kill是不正确的术语,或者至少我使用不正确。

如何销毁 docker 容器?将它们放入垃圾桶。删除。消除。擦除。

docker container kill $(docker ps -a -q  | awk '{print $1}')
Run Code Online (Sandbox Code Playgroud)

不太有效:

Error response from daemon: Cannot kill container: 06e44d24ba8d: Container 06e44d24ba8d3df83e10a1829f04755cb9053faa68ab3dabccd10c3ee1c80322 is not running
Error response from daemon: Cannot kill container: 22539a069e3b: Container 22539a069e3b8bbbd27b062603a7667857ac1a5e64242004fe7b72411a9cdbca is not running
Error response from daemon: Cannot kill container: 1f7cf43ab398: Container 1f7cf43ab398e6e18416f69fc947b49d9792b1932a4b157f0514f9f6638ca185 is not running
Error response from daemon: Cannot kill container: 7fc8c24ccabe: Container 7fc8c24ccabef04215df9ba7b8c171df6b963942e6e90c92a462cc0ab9d5dcb0 is not running
Run Code Online (Sandbox Code Playgroud)

也可以看看:

/sf/ask/3571091821/

command-line virtualization container awk docker

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

如何将特定单词后面的单词大写

假设我想将“jumped”一词后面的第一个单词大写。下面的例子

原文:

the cow jumped over the moon
Run Code Online (Sandbox Code Playgroud)

修改案文

the cow jumped OVER the moon
Run Code Online (Sandbox Code Playgroud)

我尝试过 awk 和 sed 但似乎无法正确执行。

提前致谢

bash sed awk

5
推荐指数
3
解决办法
946
查看次数

如何从 /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
查看次数

从第二行开始每三行打印一次文本文件

我已经用简单的循环完成了它来计数和打印.. 我怎样才能用 sed,awk 等程序在 bash 脚本中做到这一点?

sed awk

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

如何从字符串列表中仅获取 a 排列中的一项

我想在一组字符串中只保留一个排列并计算每个排列的出现。

为了使事情更清楚,我想转换(例如)

ab
acf
ba
cfa
acf
Run Code Online (Sandbox Code Playgroud)

进入

2 ab
3 acf
Run Code Online (Sandbox Code Playgroud)

其中 2 和 3 分别是 {a,b} 和 {a,c,f} 的排列数。

您将如何以最直接的方式在 bash 中做到这一点?

bash scripts awk uniq

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

在另一个文件中搜索 AWK 的输出

我有两个文件fileA和fileB。

我必须从 fileA 中提取 column1 awk '{print $1}',然后将输出搜索到其他 fileB 中,并将匹配的记录保存到一个新文件 fileC 中,例如:

fileA

seg1     rec1
seg2     rec2
seg3     rec3 
Run Code Online (Sandbox Code Playgroud)

我需要使用 awk 命令检索第 1 列,并搜索第 1 列fileB以检索如下记录:

fileB

seg1     one
seg2     two
seg3     three
seg4     four
seg5     five
Run Code Online (Sandbox Code Playgroud)

从文件A 中提取列1 数据,并使用该数据在文件B 中进行搜索,并将匹配的记录保存到测试文件中。我的输出应该是这样的:

fileC

seg1       one
seg2       two
seg3       three
Run Code Online (Sandbox Code Playgroud)

command-line awk text-processing

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

在多个文件中的电子邮件地址周围添加一些文本

我在一个文件夹中有许多文本文件。其中的文本格式如下:

%%%%%%%%%%@yahoo.com
%%%%%%@wanadoo.fr
%%%%raviplywoodglasscentre@yahoo.comravi
%%nameemail%%@yahoo.com
%.getincontact@numberland.com
%0dronbracale@roadrunner.com
%1%3@example.com
%1@elsewhere.com
%1@example.com
Run Code Online (Sandbox Code Playgroud)

我想对所有文件文本进行更改并使它们如下所示:

{"email":"%%%%%%%%%%@yahoo.com"}
{"email":"%%%%%%@wanadoo.fr"}
{"email":"%%%%raviplywoodglasscentre@yahoo.comravi"}
{"email":"%%nameemail%%@yahoo.com"}
Run Code Online (Sandbox Code Playgroud)

我想制作这样的完整文件,它们位于文件夹中。
我试过这个:

awk '{ printf("{"email":"%s"}", $l);}' test
Run Code Online (Sandbox Code Playgroud)

但它没有用。

那么,有什么方法可以修改文件夹中所有文件中的文本吗?

command-line awk text-processing

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

如何将字符串仅添加到数字文本行

假设我有 6 行文本。

Series
Of
Word
73914
Again
Word
Run Code Online (Sandbox Code Playgroud)

我需要在包含数字的行的开头添加一个字符串。说我插入number-

Series
Of
Word
number-73914
Again
Word
Run Code Online (Sandbox Code Playgroud)

目前我运行两个命令来达到预期的结果。我想知道是否有更有效的方法。

注意:有 1000 多行,所以最好这适用于所有行(我已经说明了)。

command-line sed awk text-processing

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