명령 결과를 -<문자> <인수> 옵션으로 파이프하는 방법은 무엇입니까? (공간 없음)

StackOverflow https://stackoverflow.com/questions/899596

  •  23-08-2019
  •  | 
  •  

문제

이 파이프 명령 세트가 있습니다.

grep -n '*' file.txt | head -n1 | awk -F\: '{print $1-1;}'

먼저 별표를 찾는 곳에 대한 이전 줄을 알려줍니다. 이제 이전 라인 파이핑을 얻고 싶습니다.

head -n<that previous line number>

헤드는 예를 들어 공백없이 -n 인수를 즉시 다음과 같은 숫자를 필요로합니다.

head -n4

어떻게 할 수 있습니까? 추가를 허용하지 않습니다

| head -n

명령 세트의 끝에. 내 검색은 결실이 없었습니다. 감사!

도움이 되었습니까?

해결책

값을 대체하기 위해 백 틱을 원합니다.

head -n`grep -n '*' file.txt | head -n1 | awk -F\: '{print $1-1;}'` file.txt

또는 여러 줄에서 비슷한 것 :

LINENO=`grep -n '*' file.txt | head -n1 | awk -F\: '{print $1-1;}'`
head -n${LINENO} file.txt

다른 팁

그냥하지 그래요 :

awk -- '{if (!/*/) print $0; else exit}' file.txt

또는 더 빠릅니다.

awk -- '/*/ {exit}; {print}' file.txt

Xargs를 사용할 수도 있다고 생각합니다. 같은 것 :

grep -n '*' file.txt | head -n1 | awk -F\: '{print $1-1;}' | xargs -I % head -n% file.txt
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top