열 끝이 아직 존재하지 않는 경우 문자로 바꿔야 합니다.

열 끝이 아직 존재하지 않는 경우 문자로 바꿔야 합니다.

사용하려고 하는데 awk작동하는 다른 것을 사용할 수 있습니다.

다음 줄이 포함된 파일이 있다고 가정해 보겠습니다.

ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjiof elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehfl ekljekfjl 8438477

하지만 모든 줄이 이렇게 슬래시로 끝나길 원합니다.

ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjiof/ elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehfl/ ekljekfjl 8438477

어떻게 해야 하나요?

나는 이것을 시도했지만 나쁜 결과를 얻었습니다

awk '{sub(/.$/, "/", $2)} 1'

하지만 이걸 얻었어

ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjio/ elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehf/ ekljekfjl 8438477

내가 원하지 않는 이전 줄의 마지막 문자를 제거합니다.

그러면 어떻게 해야 이런 결과를 얻을 수 있나요?

ewhueh wnlknlweknlnw/ qwejmdpdhhd 47578
enhkine enoekjohnkjiof/ elkjehbjuwekjuk 88989
ehnjkine efjlwkjflkjw/ ie3hjfihie 73746
ehneihe efhehjlkijehfl/ ekljekfjl 8438477

답변1

awk를 사용하세요:

awk '$2 !~ /\/$/ {$2 = $2 "/"}; 1' file

답변2

단순한. 문제의 파일 이름이 foo.txt라고 가정하면 sed다음과 같이 원하는 결과를 얻을 수 있습니다 .

sed 's/$/\//' foo.txt > aux && mv aux foo.txt

관련 정보