我在读取特定行和特定位置的字符串时遇到问题。我有一个输入文件,它对每行中的每个值都有固定的位置和固定的长度。这是我的输入文件的一个示例:
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)
发布于 2012-07-23 15:00:05
使用cut -c
有关更多详细信息,请查看手册页。
此外,您还可以使用以下代码:
echo "abcdefghij" | awk '{print substr($0,2,2),substr($0,6,2)}'
bc fg上面是来自第二个位置的两个字符和来自第六个位置的两个字符。
您的解决方案是:
awk 'NR==1 {print substr($0,12,6),substr($0,21,7)}' inputfile.inp上面的命令将从第1行的第12个位置获取6个字符,从第21个位置获取7个字符。
发布于 2012-07-23 16:33:24
您也可以使用sed:
sed -rn "1 s@.{11}(.{7}).{2}(.{8})@\1\2@p" filename解释:
https://stackoverflow.com/questions/11607757
复制相似问题