以前从未使用过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"]

10-07 16:28