광산에서 레코드를 행별로 구문 분석 (최대 요소 최대 개까지 반복 (최대 NF
까지)) 한 솔루션에 awk
을 사용하고 일부 필드를 bash
변수에 저장하고 싶습니다. 필자는 필요한 레코드를 얻을 수 있었지만 회피 할 수는 없었습니다 awk
stdout
에 자체 출력을 인쇄했습니다.awk가 표준 출력으로 출력을 억제하도록해야합니다.
이것은 내가 채택한 예입니다.
newvar=$(echo "Hello, this is a sentence with a few words." | awk '{ s = ""; for (i = 0; i <= 5; i++) s = s $i " "; print s }'
나는 bash는 변수
newvar
에 단어를
Hello, this is a sentence
를 저장하고 싶었다. 더 효율적인 방법이 있지만, 잠시 동안
awk
을 사용하는 방법을 고려하십시오.
이
는$ newvar=$(echo "Hello, this is a sentence with a few words." | awk '{ s = ""; for (i = 0; i <= 5; i++) s = s $i " "; print s }' 1>&-)
는
말하는 추한있어 오류 가변
Hello, this is a sentence with a few words. Hello, this is a sentence
I뿐만 1>&-
를 수행하여 null
에 stdout
억제 시도에서 아래와 같은 출력을 저장하고
awk : (FILENAME = -FNR = 1) 경고 : st 작성 중 오류 andard 출력 (잘못된 파일 설명자)
여기에서 괜찮은 답변을 찾을 수 없었으며이를 수행하는 방법도 알 수 없습니다. awk
으로도 가능합니까? 발견 된 경우 정확한 게시물의 중복도 인정됩니다!
왜 오류를 수정하는 대신 오류 메시지를 표시하지 :
이 방금 처음 5 개 단어를 인쇄 할 경우,
cut
을 사용했다되고? – Kusalananda줄 끝에서 닫는 괄호를 추가했다면 나에게 잘 작동하는 것 같습니다. 일치하는 줄에 단어가 0 인 경우 1 ~ 5 사이의 루프를 만들겠다고 상상합니다. – patthoyts
@Kusalananda : 당신이 의미하는 것이 확실하지 않습니다! – Inian