다음과 같은 이름과 기록을 가진 zip 파일이 있습니다.
- 파일 이름: OMS_Profile_20150922.list.Z
샘플 레코드:
1234568194|301776931|301344831|301745924|4000247920|5|1|14|
1234525025|300667099|300316999|300645099|300624099|5|1|14|
1234586176|301121638|301131238|301145638|301124638|5|1|14|
1234597373|300689187|345664087|302464187|300624187|5|1|21|
awk
이제 명령을 통해 다음과 같은 원하는 출력을 얻고 싶습니다 .
field1|field6|field7|field8|OMS_Profile_20150922.list.Z
답변1
.Z
파일이 다음과 같다고 가정합니다 .compress
- 압축 파일( .Z
확장자에서 알 수 있듯이 PKZIP 아카이브와 반대)압축파일제안합니다):
FILE='OMS_Profile_20150922.list.Z'
export FILE
zcat < "$FILE" | awk -F'|' -v OFS='|' '
{print $1,$6,$7,$8, ENVIRON["FILE"]}'
답변2
다음과 같이 작동해야 합니다.
unzip -c /tmp/test.zip >/tmp/test.txt
awk -F "|" 'START {OFS="|"} {print $1,$6,$7,$8,FILENAME}' /tmp/test.txt
답변3
read s d t f_name < <(unzip -qql OMS_Profile_20150922.list.Z)
unzip -p OMS_Profile_20150922.list.Z |
awk -F'|' '{print $1,$6,$7,$8,f_name}' OFS='|' f_name="$f_name"