以前从未使用过shell脚本,但是我需要执行当前任务。
所以我必须运行一个返回如下输出的命令:
awd54a7w6ds54awd47awd refs/heads/SomeInfo1
awdafawe23413f13a3r3r refs/heads/SomeInfo2
a8wd5a8w5da78d6asawd7 refs/heads/SomeInfo3
g9reh9wrg69egs7ef987e refs/heads/SomeInfo4
而且我需要遍历输出的每一行,只获得“SomeInfo”部分,并将其以以下格式写入文件:
["SomeInfo1","SomeInfo2","SomeInfo3"]
我已经尝试过像这样的事情:
for i in $(some command); do
echo $i | cut -f2 -d"heads/" >> text.txt
done
但是我不知道如何在不使用临时文件的情况下将其格式化为数组。
抱歉,问题很愚蠢,可能太简单了,我不确定我可以自己解决这个问题,但我只是没有时间,因为它只是我个人想要实现的一个额外的便利功能。
最佳答案
使用Perl单线
$ cat petar.txt
awd54a7w6ds54awd47awd refs/heads/SomeInfo1
awdafawe23413f13a3r3r refs/heads/SomeInfo2
a8wd5a8w5da78d6asawd7 refs/heads/SomeInfo3
g9reh9wrg69egs7ef987e refs/heads/SomeInfo4
$ perl -ne ' { /.*\/(.*)/ and push(@res,"\"$1\"") } END { print "[".join(",",@res)."]\n" }' petar.txt
["SomeInfo1","SomeInfo2","SomeInfo3","SomeInfo4"]