test.txt
다음 내용이 포함 된 텍스트 파일 이 있습니다.
a:b:c:u
e:f:g:h
i:j:k:l
m:n:v:w
q:r:s:t
다음과 같은 텍스트 파일에서 데이터를 잘라내는 bash 스크립트를 만들고 싶습니다.
./run.sh test.txt 3 2 5 3
j:k
n:v
r:s
첫 번째 매개 변수는 파일 위치, 두 번째는 내가 원하는 첫 번째 행, 세 번째는 해당 행의 열, 네 번째는 마지막 행, 마지막 매개 변수는 해당 행의 열입니다.
이 스크립트 작업을 시작했지만 막혔습니다.
내 코드는 다음과 같습니다.
#!/bin/bash
if [ ! -f $1 ]; then
echo "The first parameter doesn't exist."
exit 2
elif [ "$#" -ne 5 ]; then
echo "Given parameter is less than five."
exit 1
else
i=0
while read line; do
test $((++i)) = $2 && cut -d':' -f$3
done
fi
위에서 설명한대로 작동하려면 코드를 어떻게 완료해야합니까?
다음과 같이 관리 할 수 있습니다.
#!/bin/bash
if [[ ! -f "$1" ]]; then
echo "oops, no such file"
exit 1
elif [[ $# -lt 5 ]]; then
echo "oops, not enough params"
exit 2
fi
sed -n "$2,$4p" "$1" | cut -d ':' -f$3-$5
sed -n
자동 sed
모드로 호출 -요청하기 전까지 인쇄 안 함"$2,$4p" "$1"
파일에 포함될 $2
때까지 행 인쇄$4
$1
| cut -d ':' -f$3-$5
인쇄 된 모든 항목에서 포함 $3
하도록 필드 인쇄$5
sed
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다