![sysdate를 사용하여 고유한 이름 목록 개발 [닫기]](https://linux55.com/image/140729/sysdate%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EA%B3%A0%EC%9C%A0%ED%95%9C%20%EC%9D%B4%EB%A6%84%20%EB%AA%A9%EB%A1%9D%20%EA%B0%9C%EB%B0%9C%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
다음과 같은 ID와 이름이 포함된 파일이 있습니다.
1234|abc|cde|fgh
5678|ijk|abc|lmn
9101|cde|fgh|klm
1213|klm|abc|cde
다음 내용만 포함된 파일이 필요합니다고유한 이름목록으로.
결과물 파일:
abc|sysdate
cde|sysdate
fgh|sysdate
ijk|sysdate
lmn|sysdate
klm|sysdate
여기서 sysdate는 현재 처리 타임스탬프입니다.
답변1
cut -f2- -d\| file.txt | tr \| '\n' | sort -u | sed 's/$/|sysdate/'
cut
입력에서 열을 추출하고,-d
사용할 구분 기호를 지정하고,-f
원하는 열을 지정합니다. 따라서 여기서는 셸에서 특별한 의미를 갖기|
때문에 백슬래시가 필요한 구분 기호로 2부터 시작하는 각 열을 추출합니다.|
tr
음역(즉,|
모두 개행 문자로 대체)sort -u
중복 항목 정렬 및 삭제sed
s///
대체 항목입니다. 여기서$
줄 끝( )을 다음으로 바꿉니다.|sysdate
실제 날짜를 포함하려면 마지막 항목을 다음으로 변경하십시오.
sed 's/$/|'"$(date)"/
그 중에는 $()
명령을 출력으로 바꾸는 명령 대체가 있습니다.