BASH - 将文件的特定部分复制到字符串中

时间:2014-09-10 11:02:15

标签: bash unix sh

我有一个文本文件,我们称之为Jy.dat

我想通过bash脚本选择第7行的20到29之间的字符并将它们复制到字符串变量中。 我尝试过使用sed但没有成功

你能帮忙吗?

感谢您的建议。

3 个答案:

答案 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