각 줄의 두 패턴 사이에 텍스트를 입력합니다(패턴 포함).

각 줄의 두 패턴 사이에 텍스트를 입력합니다(패턴 포함).

다음 줄이 있습니다.

[2022-04-14T20:06:17+0800] [ALPM] installed data (0.5.0-7)
[2022-04-14T20:06:17+0800] [ALPM] installed data-cleo (0.4.1-4)
[2022-04-14T20:06:17+0800] [ALPM] installed python (0.2.2-11)

패키지를 가져오고 줄 바꿈 대신 공백으로 구분하고 싶습니다.

data data-cleo python

답변1

질문에 태그를 달았으므로 linuxGNU grep과 해당 PCRE 옵션이 있다고 가정합니다 -P. 그 다음에

$ grep -Po 'installed\s+\K\S+' log.txt | paste -sd ' '
data data-cleo python

답변2

awk를 사용하십시오.

$ awk '$3=="installed"{ printf "%s%s", sep, $4; sep=OFS } END{ print "" }' file
data data-cleo python

답변3

대답은 다음과 같습니다.

cat log.txt | sed -n 's/.*installed //p' | sed 's/ (.*//p' | tr '\n' ' '

관련 정보