일련의 파일에 대해 연속적으로 사용하는 파일, 파일의 행 수를 계산하고 해당 입력의 일부로 출력 파일로 출력하는 Linux 명령 출력 라인의 일부로 파일.입력 파일 이름과 행 수의 일부를 출력하는 Linux 명령
Yellow 28
일련의 파일에 대해 연속적으로 사용하는 파일, 파일의 행 수를 계산하고 해당 입력의 일부로 출력 파일로 출력하는 Linux 명령 출력 라인의 일부로 파일.입력 파일 이름과 행 수의 일부를 출력하는 Linux 명령
Yellow 28
wc -l [filenames] | grep -v " total$" | sed s/[prefix]//
wc -l은 거의 올바른 형식으로 출력을 생성합니다. grep -v는 wc가 생성하는 "총"행을 제거합니다. sed는 파일 이름에서 원하지 않는 쓰레기를 제거합니다. 당신을위한 스크립트를 작성 짧은
wc -l * | head --lines=-1 > output.txt
이 같은 출력을 생성합니다 : 예를 들어 우리가 파일 LOG_Yellow
보고 있었다과 28 개 라인을 가지고 그래서, 출력 파일은 다음과 같은 라인을 (Yellow
및 28
이 탭으로 분리) 할 것이다
linecount1 filename1
linecount2 filename2
나는 당신이 여기까지 당신의 필요에 따라 일할 수 있어야한다고 생각합니다.
편집 : 내가 이름 추출에 대한 규칙을 보지 못했기 때문에, 나는 여전히 전체 이름을 남깁니다. 그러나 다른 답변과 달리 head
대신 grep
을 사용하는 것이 더 빠를뿐만 아니라 total*
이라는 파일을 필터링하는 경우를 피할 수 있습니다.
EDIT2
는 (코멘트를 읽은) : 다음이 훨씬을 수행합니다wc -l * | head --lines=-1 | sed s/LOG_// | awk '{print $2 "\t" $1}' > output.txt
wc -l *| grep -v " total"
전송을
28 노란색 당신이 원한다면 당신은 그것을 되돌릴 수
(awk, 파일 이름에 공백이없는 경우) wc -l *| egrep -v " total$" | sed s/[prefix]// | awk '{print $2 " " $1}'
'sed'에 대한 Sbodd의 호출을 추가하면 이것이 답변입니다. – Welbog
: '에 대한'
모든 파일이 LOG_로 시작합니까? –
예. 나는 awk와 wc -l의 조합을 사용하는 것이 가장 좋을 것이라고 생각한다. – biznez
나는 왜 이것이 수퍼 유저 (또는 서버와 관련된 모든 리눅스 질문을 고려한다면 serverfault)에 속해 있지 않은지에 관해서 분실했다. – rmeador