小编Dar*_*ner的帖子

使用 awk 删除“,”后面的所有内容

我有一个变量 ,var其中包含:

XXXX YY ZZZZZ\n
aaa,bbb,ccc
Run Code Online (Sandbox Code Playgroud)

我想要的只是aaa第二行。我试过:

out=$(echo "$var" | awk 'NR==2{sub(",.*","")}' )
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何输出。我尝试使用,as FS 但我无法得到正确的语法。我真的很想学习 awk/regex 语法。

我想在其他地方使用 out 作为变量“$out”——而不是打印。

bash awk text-processing regular-expression

6
推荐指数
4
解决办法
2842
查看次数

使用 printf 将文本居中

printf "%*s\n" $(((${#fname}+$COLUMNS)/2)) "$fname"
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

line 9: (7+)/2: syntax error: operand expected (error token is ")/2")
Run Code Online (Sandbox Code Playgroud)

这在终端中有效,但在我的脚本中无效。你有什么想法?

bash printf text-formatting

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

提取文件名的一部分?

我有一个格式如下的文件:

XXX XXXX XXX-6VwvOkZvzuI.description
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到文件名XXX XXXX XXX?我试过了:

for file in $(ls .d*)
do
    fname="${file%*-}"
    ext="${filename%.*}"
done
Run Code Online (Sandbox Code Playgroud)

bash shell-script

0
推荐指数
1
解决办法
82
查看次数

如何使用 awk 从 tageditor 的输出中只提取乐队名称?

我正在尝试更好地组织我的音乐 m4a、mp3 等。由于文件被标记,我想我可以制作一个脚本来读取文件并从文件中提取专辑和艺术家信息,然后将文件 mv 到正确的文件夹中。我也想在这个过程中学习一些 AWK。

我开始于:

for file in *.m4a; do
    tageditor get artist -f "$file" | awk '/Artist/{ print }'
    done
Run Code Online (Sandbox Code Playgroud)

输出:

Artist            Periphery
Artist            Meshuggah, Tomas Haake, Marten Hagström, Fredrik Thordendal,
Artist            Varials, Bryan Garris
Artist            Cannibal Corpse
Artist            Lamb of God
Artist            Ingested
Artist            Linkin Park
Artist            Car Bomb
Artist            Whitechapel
Artist            Divine Destruction
Artist            Ingested, Sean Hynes, Sam Yates, Jason Evans, Lyn Jeffs
Run Code Online (Sandbox Code Playgroud)

然后:

for file in *.m4a; do
    tageditor get artist -f "$file" | …
Run Code Online (Sandbox Code Playgroud)

awk text-processing

0
推荐指数
1
解决办法
99
查看次数