파이프로 구분된 파일이 있는데 해당 파일과 결합하려면 첫 번째 열에서 선행 0을 제거해야 하지만 파일의 다른 열에서는 제거하지 않아야 합니다.
구조는 다음과 같습니다.
GA.01.02.070|GLS Add. GA 1/2/70|Wohl: Wagon d. Kelderära. ||||||
GA.01.02.071|GLS Add. GA 1/2/71|Tsä der Kelderära. Roßlau, 1935. ||||||
GA.01.02.072|GLS Add. GA 1/2/72|Rómni der Kelderära. ||||||
GA.01.02.073|GLS Add. GA 1/2/73|Wagen des Mets. Roßlau/ 1934. ||||||
GA.01.02.074|GLS Add. GA 1/2/74|Kastanja Ansin. ||||||
GA.01.02.075|GLS Add. GA 1/2/75|Raupa Ansin. ||||||
내가 원하는 출력은 다음과 같습니다.
GA.1.2.70|GLS Add. GA 1/2/70|Wohl: Wagon d. Kelderära. ||||||
GA.1.2.71|GLS Add. GA 1/2/71|Tsä der Kelderära. Roßlau, 1935. ||||||
GA.1.2.72|GLS Add. GA 1/2/72|Rómni der Kelderära. ||||||
GA.1.2.73|GLS Add. GA 1/2/73|Wagen des Mets. Roßlau/ 1934. ||||||
GA.1.2.74|GLS Add. GA 1/2/74|Kastanja Ansin. ||||||
GA.1.2.75|GLS Add. GA 1/2/75|Raupa Ansin. ||||||
sed를 사용하여 첫 번째 선행 0 또는 모든 0을 제거하는 방법을 찾을 수 있었지만 첫 번째 파이프 앞의 선행 0만 제거하는 방법은 찾지 못했습니다.
답변1
엄격한 요구 사항이 아닌 경우 sed
이 문제를 해결하기 위한 AWK 스크립트는 다음과 같습니다.
awk -F\| 'BEGIN { OFS = FS } { gsub("\\.0+", ".", $1); print }'
이는 레코드를 분할 |
하고 이를 출력에 사용합니다. 각 레코드에 대해 첫 번째 필드에서 .
하나 이상을 대체한 0
다음 전체 레코드를 출력합니다..