我有一个文本文件,我们称之为Jy.dat
我想通过bash脚本选择第7行的20到29之间的字符并将它们复制到字符串变量中。 我尝试过使用sed但没有成功
你能帮忙吗?
感谢您的建议。
答案 0 :(得分:4)
您可以使用awk:
awk 'NR == 7 {print substr($0, 20, 9); exit}' file
要复制到变量中:
str=$(awk 'NR == 7 {print substr($0, 20, 9); exit}' file)
答案 1 :(得分:3)
sed '7q;d' Jy.dat
用于选择文件的第7行
并cut -c20-29
只选择那些字符。
所以,所有人都要:myvar=$(sed '7q;d' Jy.dat| cut -c20-29)
答案 2 :(得分:2)
你可以试试下面的sed命令,
foo=$(sed -rn '7s/^.{19}(.{10}).*/\1/p' file)
示例:强>
$ cat file
foo_bar
<a name="menu_portlet_testbar">
$ foo=$(sed -rn '2s/^.{19}(.{10}).*/\1/p' file)
$ echo $foo
et_testbar