awk 문에서 변수를 사용하는 방법은 무엇입니까? [복사]

awk 문에서 변수를 사용하는 방법은 무엇입니까? [복사]

이런 스크립트가 있어요

#!/bin/ksh
echo "Enter the matching pattern"
read pattern
path= /home/siva/
echo "Navigating to $path"
cd $path
cat filename|awk '/$pattern/ {for (i=1; i<=10; i++) {getline;print}}'

$pattern스크립트를 실행할 때 입력할 수 없습니다.

답변1

echo | awk -v variable='This is variable!' 'END{print variable}'

키워드를 사용하여 변수를 전달할 수 있습니다 -v. 그리고 사용하지 마세요$변수의 경우-bash가 아닙니다. awk의 목적$필드에 액세스합니다.

답변2

#!/bin/ksh
echo "Enter the matching pattern"
IFS= read -r pattern
path=/home/siva/
echo "Navigating to $path"
cd "$path" || exit
awk -v pattern="$pattern" '$0 ~ pattern{for (i=1; i<=10; i++) {getline;print}}' filename
  1. awk -v를 사용하여 awk 스크립트에 변수를 전달합니다.
  2. cat은 불필요합니다 - awk는 파일을 직접 처리할 수 있습니다

관련 정보