我需要有一个脚本读取进来的文件并检查信息以进行验证.
在要读取的文件的第一行是日期,但是以数字形式.例如:20080923但是在日期之前是其他信息,我需要从位置27读取它.含义第1行位置27,我需要得到那个数字,看它是否大于另一个数字.
我使用grep命令检查其他信息,但我使用特殊字符进行搜索,在这种情况下,日期之前的信息总是不同,所以我不能使用字符进行搜索.它必须由第1行第27位完成.
sed 1q $file | cut -c27-34
该sed
命令读取文件的第一行,cut
命令将删除一行中的字符27-34,即您所说的日期.
后来添加:
对于更一般的情况 - 例如,您需要读取第24行,而不是第一行,您需要一个稍微复杂的sed
命令:
sed -n -e 24p -e 24q | cut -c27-34 sed -n '24p;24q' | cut -c27-34
该-n
选项意味着"默认情况下不打印行"; 的24p
装置的打印线24; 这24q
意味着在处理第24行之后退出.您可以将其保留,在这种情况下sed
将继续处理输入,实际上忽略它.
最后,特别是如果您要验证日期,您可能希望将Perl用于整个作业(或Python,或Ruby,或Tcl,或您选择的任何脚本语言).