我有一个文本文件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] 删除。
我来说两句