sed:-e 表达式 #1,字符 4:未知命令:

sed:-e 表达式 #1,字符 4:未知命令:

有人能告诉我这个回复是什么意思吗?

sed: -e expression #1, char 4: unknown command: `
'

当我使用时我得到它:

sed -n "$num"p $javaFile >> ~/Desktop/$1_sql.txt
for i in `seq 5 $max`
do
    lineNum=$(($num + $i))
    echo $lineNum
    sed -n "$lineNum"p $javaFile >> ~/Desktop/$1_sql.txt
done

其中 $javaFile 是一个 java 文件,num 是一个整数。

答案1

你的脚本没问题。可能是行终止符使它不起作用。您可以使用以下命令检查行终止符

file YourScriptFile

如果它返回类似“...with CRLF line terminators”的内容,您可以使用以下命令将 CRLF 更改为 LF 行终止符

flip -u YourScriptFile

再次运行脚本文件。

PS 有一个快速但肮脏的解决方案可以解决您的问题

cut -d $'\n' -s -f ${num},$((num+5))-$((num+max)) $javaFile

-d $'\n'表示我们用作\n分隔符,-f ${num},$((num+5))-$((num+max))表示您想要的字段(在这种情况下为行)。字段是一个列表,可以是1-31,3-10

相关内容