2013-04-01 1 views
0

모든 행이 처음으로 새 열을 추가하고 싶습니다. 명령 사용 :awk이있는 열 추가

트리 -afispugD --inodes

내가 파일의 이름이됩니다 새 열을 넣어합니다.

예 : 여기에

119801433 -rwxr--r-- u1915811 alum   1252 Apr 1 21:06 ./file 
119802284 -rw-r--r-- u1915811 alum   1255 Mar 20 10:25 ./text.txt 
119865862 drwxr-xr-x u1915811 alum   4096 Feb 27 10:20 ./S3/folder2 

:

file  119801433 -rwxr--r-- u1915811 alum   1252 Apr 1 21:06 ./file 
text.txt 119802284 -rw-r--r-- u1915811 alum   1255 Mar 20 10:25 ./text.txt 
folder2 119865862 drwxr-xr-x u1915811 alum   4096 Feb 27 10:20 ./S3/folder2 

PS : 나는, tree 명령은 이름 :(

답변

1

당신이 필요가 :

$ awk -F'/' '{print $NF,$0}' file 
file 119801433 -rwxr--r-- u1915811 alum   1252 Apr 1 21:06 ./file 
text.txt 119802284 -rw-r--r-- u1915811 alum   1255 Mar 20 10:25 ./text.txt 
folder2 119865862 drwxr-xr-x u1915811 alum   4096 Feb 27 10:20 ./S3/folder2 

또는 대신의 출력 사용의 printf에서 일부 특정 간격을 사용하려는 경우 인쇄 :이 한 줄의 간단한 교체이기 때문에, 대신 AWK의 나오지도 사용할 수

$ awk -F'/' '{printf "%-10s%s\n",$NF,$0}' file 
file  119801433 -rwxr--r-- u1915811 alum   1252 Apr 1 21:06 ./file 
text.txt 119802284 -rw-r--r-- u1915811 alum   1255 Mar 20 10:25 ./text.txt 
folder2 119865862 drwxr-xr-x u1915811 alum   4096 Feb 27 10:20 ./S3/folder2 

또는 :

$ sed 's/\(.*\/\(.*\)\)/\2 \1/' file 
file 119801433 -rwxr--r-- u1915811 alum   1252 Apr 1 21:06 ./file 
text.txt 119802284 -rw-r--r-- u1915811 alum   1255 Mar 20 10:25 ./text.txt 
folder2 119865862 drwxr-xr-x u1915811 alum   4096 Feb 27 10:20 ./S3/folder2 
+0

고마워, 그게 :) – Albert

0

도 작동이 하나가 표시되지 않기 때문에 그것을해야 파일에 이름에 공백이 있거나 기호 링크 인 경우

파일 이름에 공백이 때까지
+1

파일의 모든 줄에 'FS'및 'ORS'값을 설정한다는 것을 알고 계십니까? 대신에 'awk'{printf ("% - 60s % s \ n", $ NF, $ 0)} 'FS = "./"ORS = ""' –

+0

을 검색해야합니다. BEGIN 블록은 첫 번째 입력 레코드가 읽히기 전에 한 번 실행되기 때문에 더 좋습니다. 고마워요 :) –

+0

예. BEGIN 블록의 값을 설정할 수도 있지만, 하나의 라이너에 대해서만 스크립트 뒤에 값을 설정하십시오. –

0

이 작동합니다 :

tree -afispugD --inodes | awk '{printf("-30s%s\n",$NF,$0}'