ls -l
공백 대신 탭을 사용하여 필드를 분리하도록 출력을 어떻게 수정할 수 있습니까? 출력을 스프레드 시트에 붙여넣고 싶습니다. 가변 개수의 공백이있는 패딩은 그렇게하기가 어렵습니다. 설명하기 위해 :
drwxr-xr-x 2 루트 루트 4096 9 월 26 일 11:43 wpa_supplicant -rw-r ----- 1 루트 전화 걸기 66 9 월 26 일 11:43 wvdial.conf drwxr-xr-x 9 루트 루트 4096 10 월 8 일 08:21 X11 drwxr-xr-x 12 루트 루트 4096 2 월 18 일 23:31 xdg drwxr-xr-x 2 루트 루트 4096 1 월 31 일 06:11 xml drwxr-xr-x 2 루트 루트 4096 11 월 22 일 07:26 xul-ext -rw-r--r-- 1 루트 루트 349 2012 년 1 월 13 일 zsh_command_not_found
위의 발췌에서 ls -l /etc
1, 2 및 3 행은 2 열의 단일 자릿수를 갖는 반면 4 행은 2를 갖습니다. 즉, 1-3 행에서 1 열과 2 열을 분리하기 위해 2 개의 공백을 사용하고 4 열에서는 1 개의 공백 만 사용하여 정렬을 수행합니다.
ls
출력을 파싱하는 것이 좋습니다. 그것은 거의 목표가 아닙니다. 틀림없이 여기 있습니다. 나는 당신이 사용한 방법이 꽤 좋다고 생각합니다 (어떤 방법이든 필요에 따라 원치 않는 결과를 얻을 수 있습니다 )! 그러나 파싱ls
이 더 나을 수도 있습니다. 실제로 탭 문자가있는 파일 이름의 경우를 고려하십시오.ls -l
탭을?
문자로 바꿉니다 . 스크립트는 탭 문자를 유지하여 출력이 탭으로 해석되고 스프레드 시트를 작성하는 데 사용되는 경우 추가 열을 작성합니다. 파일 이름에 줄 바꿈이 있으면 심하게 저하됩니다.