이런 스크립트가 있어요
#!/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는 파일을 직접 처리할 수 있습니다