카운트다운 및 목록 + 고급 기능

카운트다운 및 목록 + 고급 기능

몇 가지 질문이 있습니다.

/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)요청한 대로 줄의 일부를 지우십시오. 그러나 /문자 사이에 구체적이고 규칙적인 바이트 수가 없으면 아마도 별로 쓸모가 없을 것입니다. 물론 최종 명령에서는 이를 처리해야 합니다.

관련 정보