"공백"을 쥐고 싶다면 tr의 사전 정의 된 문자 세트 ": blank :"(가로 공백 탭 및 공백) 또는 ": space :"(수직 공백)를 사용하려고합니다.
/bin/echo -e "val1\t\tval2 val3" | tr -s "[:blank:]"
Red Hat 5 (GNU tr)에서 예제를 실행했습니다.
필자의 경우 모든 공백을 단일 공간으로 정규화하여 공간을 델리 미터로 사용할 수있었습니다.
dastrobu의 두 번째 의견에서 지적했듯이 맨 페이지의 문구를 놓쳤습니다.
-s uses the last specified SET, and occurs after translation or deletion.
이를 통해 첫 번째 tr을 제거 할 수 있습니다. Kudo는 나의 조밀함에 직면 한 그의 인내심을 위해 스콧해야합니다.
이전에 Redis 구성에서 포트를 구문 분석하십시오. 파일:
grep "^port" $redisconf | tr "[:blank:]" " " | tr -s "[:blank:]" | cut -d" " -f2
그런 다음 SET2를 압착으로 지정하십시오.
grep "^port" $redisconf | tr -s "[:blank:]" " " | cut -d" " -f2
산출:
6379
공백의 뉘앙스를 다루는 자세한 내용
[: blank :] 문자 클래스에 속하는 연속 혼합 문자가 포함 된 경우 스퀴즈 만 실패하는 위치를 보여줍니다.
/usr/bin/printf '%s \t %s' id myname | tr -s "[:blank:]" | od -cb
0000000 i d \t m y n a m e
151 144 040 011 040 155 171 156 141 155 145
0000013
참고 : printf 형식의 두 문자열 필드는 1 개의 공백, 1 개의 탭, 1 개의 공백으로 구분됩니다. 짜낸 후에도이 순서는 여전히 존재합니다. 8 진 덤프의 출력에서 이는 ASCII 시퀀스 040 011 040으로 표시됩니다.