각 줄의 마지막 문자 바꾸기

각 줄의 마지막 문자 바꾸기

문자로 끝나는 부동 소수점이 포함된 CSV 파일이 있습니다.

1, 2, 6, 7, "p"
1, 6, 7, 2, "e"

등.

분류 작업의 경우 "p"를 0으로, "e"를 1로 바꾸고 싶습니다. 즉, 나는 다음을 원한다:

1, 2, 6, 7, 0
1, 6, 7, 2, 1

내 파일의 모든 8000줄에 대해.

나는 시도했다:

sed -i 's/"p"$/0' filename.csv

그리고

sed -i 's"p"$0//' filename.csv

그러나 둘 다 작동하지 않습니다. sed를 사용하여 각 줄의 여러 문자를 바꾸는 방법은 무엇입니까?

답변1

sed -e 's/"p"$/0/; t' -e 's/"e"$/1/' filename.csv

의 경우 t첫 번째 교체가 성공하면 분기하여 두 번째 교체 시도를 방지합니다. 이는 한 줄에 최대 하나의 대체를 수행하는 일반적인 관용어입니다.

답변2

첫 번째 항목에는 sed종료가 없습니다 /. 사용sed -i 's/"p"$/0/' filename.csv

답변3

sed 's/"p"$/0/;s/"e"/1/' file.txt

관련 정보