我有以下场景:
if [file exists]; then
exit
elif
recheck if file exist (max 10 times)
if found exit else recheck again as per counter
fi
Run Code Online (Sandbox Code Playgroud) 我有目录说它/var/tmp/abc
有 4 个文件:
12345-ram-3e3r5-io9490-89adu9.csv
45434-dam-qwe35-to9490-43adu9.csv
11234-cam-yy3r5-ro9490-85adu9.csv
14423-sam-hh3r5-uo9490-869du9.csv
Run Code Online (Sandbox Code Playgroud)
我想以尽可能短的(可能是单行)方式重命名所有 CSV 文件(找到所有文件并重命名它们):
XXXXX-ram-3e3r5-io9490-89adu9.csv
XXXXX-dam-qwe35-to9490-43adu9.csv
XXXXX-cam-yy3r5-ro9490-85adu9.csv
XXXXX-sam-hh3r5-uo9490-869du9.csv
Run Code Online (Sandbox Code Playgroud) 我有以下字符串,例如
2017-01-19:31:51 [ABCD:] 37723 - MATCH: 10 [text]
Run Code Online (Sandbox Code Playgroud)
我想查找MATCH
并打印它的值 10,使用awk
. 我能够使用传统方法来做到这一点grep
,cut
但想找到使用sed
或 的方法awk
。
MATCH
可以在线上的任何位置。
基本上我有以下场景,例如
grep 'test: \K(\d+)' $file
=> 15grep 'test1: \K(\d+)' $file
=> 20有没有办法将两个命令的结果存储到一个变量中,比如用逗号作为分隔符,
Test="grep 'test: \K(\d+)' $file;grep 'test1: \K(\d+)' $file"
Run Code Online (Sandbox Code Playgroud)
答案=eval $Test
预期输出:15,20
?
bash ×2
shell-script ×2
awk ×1
command-line ×1
files ×1
grep ×1
rename ×1
sed ×1
shell ×1
variable ×1