'p'
내 임무는 이름이 문자로 시작하는 속성을 가진 파일 목록을 소비하고 출력하는 것입니다 .ls
grep
다음과 같은 파일 목록을 표시하는 데 사용하고 있는데 알파벳 파일 ls -Rl
만 출력하는 방법을 모르겠습니다 .'p'
ls -lR | grep -v :$ | grep -v total | grep -v "^$"
답변1
귀하의 질문에서 중요한 내용을 빠뜨리지 않는 한, 간단히 다음과 같이 이 작업을 수행할 수 있다고 말하고 싶습니다.파일 글로빙:
ls -l p*
이 명령은 로 시작하는 파일과 디렉터리를 나열합니다 p
. 사용할 필요가 없습니다 grep
.
답변2
코딩 방법:
ls -Rl | awk '/^-/ && $NF ~/^p/'
파일 목록은 다음 두 가지 조건이 충족되는 경우에만 인쇄됩니다.
/^-/
줄은 하이픈으로 시작됩니다.$NF ~ /^p/
마지막 열은 p로 시작합니다. (파일명에 공백이 없는 경우에만 해당)
find
구문 분석하는 대신 명령을 사용하는 것을 선호합니다.ls
find . -type f -name "p*" -ls
답변3
OP에서 언급했듯이 grep을 사용하고 속성을 표시하십시오. GNU grep을 사용하십시오:
ls -Rlp | grep -v / | grep -P "(?<=:[0-9]{2}[[:blank:]])p.*"