![awk 문에서 변수를 사용하는 방법은 무엇입니까? [복사]](https://linux55.com/image/99748/awk%20%EB%AC%B8%EC%97%90%EC%84%9C%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
이런 스크립트가 있어요
#!/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
- awk -v를 사용하여 awk 스크립트에 변수를 전달합니다.
- cat은 불필요합니다 - awk는 파일을 직접 처리할 수 있습니다