![@@@ 및 NotApplicable 문자열을 바꾸고 출력을 다른 파일로 리디렉션하시겠습니까? [복사]](https://linux55.com/image/142690/%40%40%40%20%EB%B0%8F%20NotApplicable%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EB%B0%94%EA%BE%B8%EA%B3%A0%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20%EB%8B%A4%EB%A5%B8%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
저는 지원이 많지 않은 IBM AIX를 사용하고 있습니다. 예를 들어 sed -i
sed with \t
제 경우에는 작동하지 않습니다.
NotApplicable
문자열을 a로 바꾼 single space ' '
다음 awk 또는 sed가 포함된 단일 명령을 사용하여 지정된 순서로 @@@
다중 문자 구분 기호를 a로 바꾸고 싶습니다 .tab delimiter
아래와 같이 sed를 사용해 보았지만 작동하지 않습니다. 다음 명령에서는 검색을 추가하고 NotApplicable을 " " 단일 공백으로 바꿀 수 없습니다.
sed 's/@@@/\t/g' file.csv > file.xls
견본.
cola@@@colb@@@colbc
test@@@test@@@test
test@@@NotApplicable@@@test
123@@@145@@@567
333@@@444@@@NotApplicable
cola colb colbc
test test test
test test
123 145 567
333 444
답변1
번역하다자일스의 대답이 경우는 다음과 같습니다.
sed $'s/@@@/\t/g; s/NotApplicable/ /g' file.csv > file.xls
이는 TAB으로 해석할 수 있도록 ANSI-C 인용을 사용합니다 \t
. 인용문 안의 다른 모든 내용은 기존 sed
명령입니다.
답변2
이를 수행하는 더 확실한 방법이 있을 수 있지만 UNIX 시스템에서 문자를 생성하는 한 가지 방법은 tr(1)을 사용하는 것입니다.
tab=`echo t | tr t '\011'`
sed "s/NotApplicable/ /g; s/@@@/$tab/g" file.csv > file.xls
알아채다더블명령 주위에 따옴표를 붙입니다 sed
.