Linux 터미널의 동일한 명령은 다른 작업을 수행합니다.

Linux 터미널의 동일한 명령은 다른 작업을 수행합니다.

저는 더 작은 버전을 만들고 싶었습니다.

PRODUCTID   PRODUCTNDC  NDCPACKAGECODE  PACKAGEDESCRIPTION  STARTMARKETINGDATE  ENDMARKETINGDATE    NDC_EXCLUDE_FLAG    SAMPLE_PACKAGE
0002-0800_b02ed630-6947-431a-a8c8-227571403941  0002-0800   0002-0800-01    1 VIAL in 1 CARTON (0002-0800-01)  > 10 mL in 1 VIAL    19870710        N   N

입력하다

b02ed630-6947-431a-a8c8-227571403941    0002-0800-01    1 VIAL in 1 CARTON (0002-0800-01)  > 10 mL in 1 VIAL    19870710        N   N

나는 명령을 사용한다

 sed 's/^\([^_]*\)_\([^  ]*\)    \([^    ]*\)    \([^(]*\)[(][^)]*[)]/\2\t\4/' package.txt

이전에 같은 명령어를 입력해서 히스토리에서 확인해보니, 복사해서 붙여넣었을 때 히스토리에서 같은 명령어를 사용했을 때와 달랐습니다. 이 문제를 해결하는 방법을 아시나요?

답변1

awk나는 이것을 사용하는 편이다 .

  • 제거하다PRODUCTNDC
  • PRODUCTNDC처음부터 벗겨져PRODUCTID
  • 헤더 행 제거
  • 탭으로 구분된 필드 가정

그래서,

awk -F'\t' 'NR>1 { OFS=FS; $1=substr($1,length($2)+2,length($1)); $2=$3; $3=$4; $4=$5; $5=$6; $6=$7; $7=$8; NF--; print }'

산출

b02ed630-6947-431a-a8c8-227571403941    0002-0800-01    1 VIAL in 1 CARTON (0002-0800-01) > 10 mL in 1 VIAL     19870710                N       N

관련 정보