몇 가지 질문이 있습니다.
/group/book/four/word에 있는 파일의 줄을 포함된 줄 수에 따라 정렬하여 나열했습니다.
$ wc -l /group/book/four/word/*|sort -n
...알겠어요:
2 /group/book/four/word/wer.txt
2 /group/book/four/word/rti.txt
3 /group/book/four/word/cool.txt
이것이 내가 원하는거야! 완벽한.
하지만 이제 생성된 목록에 파일 이름만 포함되기를 원합니다. 예를 들면 다음과 같습니다.
wer.txt
rti.txt
cool.txt
"od" 명령을 사용하여 이 작업을 어떻게 수행할 수 있습니까?
위에서 얻은 결과 행의 시작 부분에 있는 숫자를 제거하려면 "sed"를 어떻게 사용합니까? 처음 두 행에 대해서만 동일한 작업을 어떻게 수행할 수 있습니까?
답변1
경로 이름 확장자를 가진 파일 목록이 표시됩니다.
cd /group/book/four/word
echo *
# or into a file
echo * >/path/to/filelist.txt
처음부터 첫 번째 공백(또는 공백 그룹)을 포함하여 한 줄의 모든 내용을 삭제할 수 있습니다 sed
.
sed 's/^[^ ] *//g'
od
나는 이것이 어떤 관련이 있는지 알지 못합니다 .
sed
예를 들어 세 번째 줄에서 종료되도록 하려면 처음 두 줄로 제한할 수 있습니다.
sed -e 3d -e 's/^[^ ] *//g'
답변2
나는 sed
그 뒤에 넣어서 원하는 모든 파일을 한 번에 작성 sort
하도록 할 것입니다 .w
wc -l /group/book/four/word/*|sort -n |
sed 'w ./not_as_yet_touched.txt
1,2s/^[0-9 ]*//w ./first_two_lines_without_line_numbers_or_leading_spaces.txt
s|.*/||w ./everything_up_to_first_slash_trimmed.txt'
작성된 것처럼 sed
위의 모든 명령을 실행한 결과는 여전히 자동으로 인쇄되지만 결과는 터미널에 표시됩니다.(혹은 어디를 stdout
가든지)마지막 파일의 내용만 충실히 반영됩니다. 나머지 두 개는 w
행 주기에서 서로 다른 시간에 기록되므로 내용도 달라집니다.sed
하지만 od
...글쎄... od
별로는 아니지한계데이터가 너무 많아덤프그것. od
다른 필터와 결합 할 수 있습니다.(예를 들어 sed
)요청한 대로 줄의 일부를 지우십시오. 그러나 /
문자 사이에 구체적이고 규칙적인 바이트 수가 없으면 아마도 별로 쓸모가 없을 것입니다. 물론 최종 명령에서는 이를 처리해야 합니다.