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

関連情報