如何在":“之前用awk分隔下面的行,直到"-"?
cat list.txt
domain.com/prod-1/name-1/imagename:1.0.71-b651706b950efc68857089d89ej3423423adfdsf
domain.com/prod02/name-2asd-asdasd-11/imagename1:2.0.71-b651706b950efc68857089dsdfsdfsdfsdfsdf我试过awk in awk,但没有成功
cat ist.txt |awk -F ":" {'a=$1; b=awk -F "-"{'print $2'};print a b '}预期结果为
domain.com/prod-1/name-1/imagename:1.0.71
domain.com/prod02/name-2asd-asdasd-11/imagename1:2.0.71发布于 2021-02-12 07:53:59
在awk中使用split()函数拆分字符串。
awk -F':' '{split($2, a, /-/); print $1 ":" a[1]}' ist.txt发布于 2021-02-12 08:00:29
使用sed
$ sed -E 's/(:[^-]*)-.*/\1/' file
domain.com/prod-1/name-1/imagename:1.0.71
domain.com/prod02/name-2asd-asdasd-11/imagename1:2.0.71发布于 2021-02-12 16:07:45
在GNU awk上使用gensub()函数
awk '{print gensub(/(^.*)(-.*$)/,"\\1","g")}' file
domain.com/prod-1/name-1/imagename:1.0.71
domain.com/prod02/name-2asd-asdasd-11/imagename1:2.0.71https://stackoverflow.com/questions/66164658
复制相似问题