我在特定行和特定位置读取字符串时遇到问题。我有一个输入文件,每个行中的每个值都有一个固定的位置和固定的长度。这是我输入文件的一个示例:
sltele Hoodie 24051988 d12Hdq
sltele Hoodie 07051987 d30Hdq
sltele Hoodie 07082011 d08Hdq
sltele Hoodie 09081961 d04Hdq
sltele Hoodie 20041962 d14Hdq
sltele Hoodie 20032000 d01Hdq
sltele Hoodie 13062002 d05Hdq
我需要在第一行的第三列中读取一个字符串。所以,我用了这个
awk 'NR==1 {print $2, $3}' inputfile.inp
如何以字符位置作为参数获得精确结果? (12日至18日和21日至28日)
答案 0 :(得分:4)
使用cut -c
查看手册页以获取更多详细信息。
您也可以使用以下内容:
echo "abcdefghij" | awk '{print substr($0,2,2),substr($0,6,2)}'
bc fg
上面是第二个位置的2个字符和第6个位置的2个字符。
您的解决方案将是:
awk 'NR==1 {print substr($0,12,6),substr($0,21,7)}' inputfile.inp
上面的命令将从第12位获得6个字符,从第1行第21位获得7个字符。
答案 1 :(得分:0)
您也可以使用 sed :
sed -rn "1 s@.{11}(.{7}).{2}(.{8})@\1\2@p" filename
说明: