줄의 마지막 문자 자르기

줄의 마지막 문자 자르기

csv길이가 다른 줄이 있는 파일이 있습니다 . 그러나 모두 한 쌍의 중괄호로 둘러싸인 숫자로 끝납니다. 예를 들어,

........{5}
........{16}

예를 들어 숫자와 중괄호를 제거하거나 큰따옴표로 바꾸고 싶습니다. 결과는 다음과 같습니다.

........
........

또는

........"
........"

고정 길이가 있거나 줄 끝에 동일한 문자열이 있는 줄에 대한 솔루션만 찾았습니다.

어떤 아이디어가 있나요?

답변1

제거하려면 GNU를 사용하십시오 sed.

sed 's/{[0-9]\+}$//' file.csv

표준 동등:

sed 's/{[0-9]\{1,\}}$//' file.csv

또는:

sed 's/{[0-9][0-9]*}$//' file.csv

삭제 대신 교체하려면 //다음으로 교체하세요./"/"

답변2

{..}이 GNU sed 명령을 사용하여 마지막 명령을 큰따옴표로 바꾸십시오 .

sed -r 's/^(.*)\{.*\}$/\1"/g' file

예:

$ cat file
........{5}
........{16}
avhjjk{23}

$ sed -r 's/^(.*)\{.*\}$/\1"/g' file
........"
........"
avhjjk"

통과하고 awk,

$ awk '{gsub (/{.*}$/,"\""); print}' file
........"
........"
avhjjk"

관련 정보