다음과 같은 파일이 있습니다.
67 lol
143 hi
21 test
1 ciao
5 lo
공백을 제거하고 싶습니다.
67 lol
143 hi
21 test
1 ciao
5 lo
나는 sed를 사용하여 이 작업을 수행할 수 있다는 것을 알고 있습니다. 예를 들면 다음과 같습니다.
cat ciao | sed 's/[[:space:]]*\([[:digit:]]* .*\)/\1/' | sort -g
그런데 교수님께서 컷을 사용하면 쉽게 이 작업을 할 수 있다고 하셨는데… 실제로 어떻게 하는지는 모르겠어요.
이 같은:
cat ciao | rev | cut -d' ' -f1 | rev
번호 정보를 잃어버렸기 때문에 작동하지 않습니다. 하하 안녕 테스트 안녕 루오
답변1
파일에 공백 대신 탭이 있는 경우 다음만 사용할 수 있습니다 cut
.
cut -f2- < file
cut
공백을 사용하는 것만으로는 충분하지 않지만 다음을 조합 하여 사용할 수 있습니다 .tr
cut
tr -s ' ' < file | cut -d' ' -f2-
답변2
나는 답을 찾았습니다: 나는 이것을 할 수 있습니다:
cat ciao | rev | cut -d ' ' -f 1,2 | rev
번호 정보를 잃지 않으려면. 일하다!
답변3
교수가 작동하는 코드를 보여주기 전까지는 자신이 말하는 내용을 모를 수도 있다는 점을 고려하세요. 이 cut
유틸리티는 단일 문자로 구분된 열을 추출하는 도구입니다. 귀하의 데이터는 그렇지 않습니다.
줄 시작 부분의 공백만 제거하려면 다음 sed
명령을 사용하면 각 줄 시작 부분에서 0개 이상의 공백을 일치시켜 제거할 수 있습니다.
sed 's/^ *//' file
모든 줄에 첫 번째 줄과 숫자와 단어 사이에 공백 한 개(아무 말도 하지 않음) 외에 더 이상 공백이 없다는 것을 알고 있는 경우에만 cut
and를 사용하세요. rev
당신이 속담을 가지고 있다면 12 Abba Baab
, 그것은 더 이상 사실이 아닙니다.