我有一个文件在文件中有一行如下:
check=('78905905f5a4ed82160c327f3fd34cba')
我希望能够移动此行以遵循如下所示的行:
files=('somefile.txt')
该阵列虽然有时可以跨越多行,例如:
files=('somefile.txt'
'file2.png'
'another.txt'
'andanother...')
text
in between
check=('78905905f5a4ed82160c327f3fd34cba'
'5277a9164001a4276837b59dade26af2'
'3f8b60b6fbb993c18442b62ea661aa6b')
数组/行总是以a)结尾,其间没有文本将包含一个闭括号.
我得到一些建议,awk可以做到这一点:
awk '/files/{
f=0
print $0
for(i=1;i<=d;i++){ print a[i] }
g=0
delete a # remove array after found
next
}
/check/{ f=1; g=1 }
f{ a[++d]=$0 }
!g' file
这只会跨越一条线.我被告知要扩大搜索范围:
awk '/source/ && /\)$/{
f=0
print $0
for(i=1;i<=d;i++){ print a[i] }
g=0
delete a # remove array after found
next
}
/md5sum/ && /\)$/{ f=1; g=1 }
f{ a[++d]=$0 }
!g'
刚学习awk所以我很感激你的帮助.或者,如果有其他工具可以做到这一点,我想听听它.有人告诉我’ed’这些类型的功能.