![전체 텍스트 파일에서 한 줄에 나타나는 모든 .after]를 제거합니다.](https://linux55.com/image/54325/%EC%A0%84%EC%B2%B4%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%ED%95%9C%20%EC%A4%84%EC%97%90%20%EB%82%98%ED%83%80%EB%82%98%EB%8A%94%20%EB%AA%A8%EB%93%A0%20.after%5D%EB%A5%BC%20%EC%A0%9C%EA%B1%B0%ED%95%A9%EB%8B%88%EB%8B%A4..png)
각 줄 뒤에 있는 .]를 삭제해야 하는 파일이 있습니다.
예를 들어
xyz[1.2]35.23
xyz[1.2.3]35.234
출력은
xyz[1.2]3523
xyz[1.2.3]35234
답변1
가장 오른쪽 지점 뒤의 지점을 삭제하려면 ]
:
sed -e :1 -e 's/\(][^]]*\)\.\([^]]*\)$/\1\2/;t1'
또는:
awk -F']' -vOFS=']' 'NF>1 {gsub(/\./,"",$NF)};1'
또는:
perl -pe 's/.*\]\K.*/$&=~s|\.||gr/e'
삭제 후에는 오른쪽에 다른 것이 있는지 여부는 ]
중요하지 않습니다 .]
sed -e :1 -e 's/\(].*\)\./\1/;t1'
또는:
perl -pe 's/.*?\]\K.*/$&=~s|\.||gr/e'
답변2
그리고 perl
:
$ perl -pe 's/(?<=])\d+\K\.//g' file
xyz[1.2]3523
xyz[1.2.3]35234