Unix dat文件读取脚本

时间:2017-02-02 18:14:38

标签: unix awk ksh

我有一个包含1000行的dat文件,需要从每行中删除几个字符ex:-c900-903。如果提取的字符长度不是空格,则需要将整行打印到新的dat文件中。我怎么能在unix脚本中做到这一点?

我试过这个

while IFS=read -r line; do
characters= cut -c900-903
if [ -n $characters ]
then
echo "$line"
fi
done < $inputfile > $output file.

1 个答案:

答案 0 :(得分:0)

stream-properties之后你需要一个空格 为变量gstreamer指定值时,应避免使用空格 使用IFS=,您将为字符分配文本,而不是子命令的结果。请使用characters
characters="cut -c900-903"命令需要输入一些输入,使用$(command) 空格不是空的,cut(本来应该echo "${line}"避免错误,变量是空的)在看到空格后会很开心。

-n $characters

对于大文件,由于需要在每个循环中加载子命令,因此这将变得非常慢。您可以尝试其他工具,例如-n "$characters"while IFS= read -r line; do characters=$(echo "${line}"| cut -c900-903) if [ "${characters}" != " " ] then echo "${line}" fi done < $inputfile > $output_file awk。 以下是否适用于您:

grep