awk 또는 sed를 사용하여 텍스트의 마지막 줄에서 텍스트 형식 검색을 수행합니다.

awk 또는 sed를 사용하여 텍스트의 마지막 줄에서 텍스트 형식 검색을 수행합니다.

내 출력에는 많은 줄이 있습니다. 출력 라인 수는일관성 없는. 마지막 줄을 선택하여 문자를 찾아서 바꿀 수 있는 방법이 있습니까? awk또는 를 사용하지 않는 경우 * 도구를 sed사용하세요 .Unix

다음은 수정해야 하는 입력의 간단한 예입니다. 일반적으로 길이는 1~200줄이며 다양합니다. 마지막 쉼표를 찾아서 제거하고 싶습니다.

입력 예

202", # 1233eda 
049", # 1022ats 
194", # 109nunnz 
180", # 0010204NE 
113", # 10195y.it 
489", # 1-420 
345", # 192EelL 
209", # 18tWa 
145", # 18tr 
137", # 1165y_SVM 
561", # 1odeN 
737", # 1hoer_co 
816", # 10138wDUSW 
954", # 1013saLN349ND 
969", # 112t-2_420 
114", # 1012i.fm 
650", # 10zy.i 
860", # 1119b.co 
177", # 1.0109tz

원하는 출력

202", # 1233eda 
049", # 1022ats 
194", # 109nunnz 
180", # 0010204NE 
113", # 10195y.it 
489", # 1-420 
345", # 192EelL 
209", # 18tWa 
145", # 18tr 
137", # 1165y_SVM 
561", # 1odeN 
737", # 1hoer_co 
816", # 10138wDUSW 
954", # 1013saLN349ND 
969", # 112t-2_420 
114", # 1012i.fm 
650", # 10zy.i 
860", # 1119b.co 
177"  # 1.0109tz

답변1

그리고 sed:

$ sed '$s/,//' file
운영자 중요성
$ 파일의 마지막 줄
s/TO_REPLACE/REMPLACEMENT/ 대체 해골
, 문자 그대로의 의미 ','

다음을 사용하는 라인 Perl:

$ perl -F, -ne 'if (eof()) {print join " ", @F} else {print}' file 

산출

202", # 1233eda 
049", # 1022ats 
194", # 109nunnz 
180", # 0010204NE 
113", # 10195y.it 
489", # 1-420 
345", # 192EelL 
209", # 18tWa 
145", # 18tr 
137", # 1165y_SVM 
561", # 1odeN 
737", # 1hoer_co 
816", # 10138wDUSW 
954", # 1013saLN349ND 
969", # 112t-2_420 
114", # 1012i.fm 
650", # 10zy.i 
860", # 1119b.co 
177"  # 1.0109tz

답변2

그것이 해당 입력으로 수행하는 전부라면 sed 솔루션을 사용하겠습니다.게시자: @Gilles그러나 이미 sed스크립트가 있고 실제로 더 많은 작업을 수행해야 하는 경우 한 줄만 버퍼링하는 perl방법은 다음과 같습니다 .awk

$ awk 'NR>1{print p} {p=$0} END{sub(/,/," ",p); print p}' file
202", # 1233eda
049", # 1022ats
194", # 109nunnz
180", # 0010204NE
113", # 10195y.it
489", # 1-420
345", # 192EelL
209", # 18tWa
145", # 18tr
137", # 1165y_SVM
561", # 1odeN
737", # 1hoer_co
816", # 10138wDUSW
954", # 1013saLN349ND
969", # 112t-2_420
114", # 1012i.fm
650", # 10zy.i
860", # 1119b.co
177"  # 1.0109tz

관련 정보