이것은 간단한 형식의 질문이지만 대답은 나를 벗어납니다.'ls -lrt'의 형식을 지정하고 bash의 텍스트 파일로 보내는 방법
와일드 카드가있는 특정 파일을 찾고 파일로 인쇄하고 전자 메일을 보낼 수있는 bash 스크립트가 있습니다. ls -lrt $var*
이 필요하지만 출력물을 화면에 보이는 것처럼 한 줄씩 깔끔하게 인쇄 할 수는 없습니다.
-rw-rw-r-- 1 user user 14173 Nov 30 06:39 20171129_file1.txt.gz<br>
-rw-rw-r-- 1 user user 30954 Nov 30 06:39 20171129_file2.txt.gz<br>
-rw-rw-r-- 1 user user 95933 Nov 30 07:01 20171129_file3.txt.gz<br>
-rw-rw-r-- 1 user user 399507 Nov 30 08:43 20171129_file4.txt.gz<br>
내가이 시도 : I 출력 파일이 찾고 있어요
for f in `ls -ltr $var*`; do
echo $f >> /tmp/mailtext
done
을하지만 파일 출력은 모든 필드에 대한 새로운 라인이있다 : 다음
-rw-rw-r--
1
user
user
133119
Dec
1
07:06
20171130_filename.txt.gz
etc......
과 나는 echo와 같은 새로운 라인을 보내지 않는 printf와 함께 이것을 시도했지만, 네 개의 파일은 모두 엉망이다. 모두 한 줄에 출력을 생성
for f in `ls -ltr $var*`; do
printf "x $f" >> /tmp/mailtext
done
:
x -rw-rw-r--x 1x userx userx 13318x Decx 1x 07:06x 20171130_filename1.txt.gzx -rw-rw-r--x 1x userx userx 30793x Decx 1x 07:06x 20171130_filename2.txt.gzx -rw-rw-r--x 1x userx userx 99811x Decx 1x 08:00x 20171130_filename3.txt.gzx -rw-rw-r--x 1x userx userx 41363x Decx 1x 08:10x 20171130_filename4.txt.gz
은 물론 나는 printf와 "X의 $ f를 \ n"을 시도했지만 그때는 첫 번째 시도에서 하나처럼 보였다.
그래서 어떤 아이디어를 어떻게 간단한 형식으로 할 수 있습니까? 고맙습니다! 일을
왜'ls -ltr $ var *>/tmpmailtext'가 아닌가? 행운을 빕니다. – shellter
[ls'의 출력을 분석하지 마십시오.] (http://mywiki.wooledge.org/ParsingLs), [for 명령 루프를 반복하기 위해'for' 루프를 사용하지 마십시오] (http : /mywiki.wooledge.org/BashFAQ/001). – chepner
질문에 서식을 사용하십시오. – PesaThe