![파일에서 2자리 미만의 열을 제거하는 방법은 무엇입니까?](https://linux55.com/image/92119/%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%202%EC%9E%90%EB%A6%AC%20%EB%AF%B8%EB%A7%8C%EC%9D%98%20%EC%97%B4%EC%9D%84%20%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
다음과 같은 파일이 있습니다.
입력하다:
112 1 2 01 1
000 0 0 22 0
122 2 2 22 0
행당 2자리 미만의 열을 제거하고 싶습니다. 따라서 출력은 다음과 같아야 합니다.
112 01
000 22
122 22
어떤 제안이 있으십니까? 실제 파일의 용량이 상당히 크기 때문에 주의하시기 바랍니다.
답변1
한 가지 가능한 방법은 Perl을 사용하는 것입니다.
perl -alne 'print join " ", grep { length > 1 } @F' file
답변2
sed(또는 awk나 Perl과 같은 더 강력한 도구)를 사용하여 이를 수행할 수 있습니다.
예를 들어
sed -e :loop \
-e 's/^[0-9]\{1\} //' \
-e 's/ [0-9]\{1\}$//' \
-e 's/ [0-9]\{1\} / /g' \
-e 't loop' <input >output