我正在尝试扫描文本,但只扫描每行的某些方面。
这是我的代码:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo $line
destdir=/home/sample.txt
#echo $destdir
#want=${line:3:51}
if [ -f "$destdir" ]
then
echo "${line:3:51}" > "$destdir"
done < "$1"
我想阅读file.txt
,只输出从第3个字符开始,以第54个字符结尾的行,并附加文件sample.txt
。我目前收到此错误:
line 11: syntax error near unexpected token `done'
line 11: `done < "$1"'
有什么建议吗?
答案 0 :(得分:1)
您缺少fi
关键字来终止if
声明:
if [ -f "$destdir" ]
then
echo "${line:3:51}" > "$destdir"
fi
但是,只需拨打一次cut
:
cut -c 3-51 "$1" > /home/sample.txt