¡Vale, lo tengo! Así que había perdido el punto de entrada a mi sistema de archivos, pero conocía el sector donde terminaba la partición. Reduje la partición que hice antes a 36 GB porque originalmente era de 35 GB. Luego ejecuté ext2scan desde esta publicación para encontrar el superbloque. Luego hice una partición comenzando desde el sector que encontró ext2scan y terminando en el sector en el que sabía que tenía que terminar. Luego, dumpe2fs encontró el superbloque y mi sistema de archivos. Por último, inicié grub -resque y lo arreglé.
Вы можете использовать match()
с RSTART , RLENGTH и substr()
:
awk 'match($0,/==.*?.csv.gz/){print $3","substr($0, RSTART+2, RLENGTH-2)}' file
Где
мы используем функцию match()
, чтобы найти подстроку -, соответствующую шаблону /==.*?.csv.gz/
. Для любых совпадающих строк мы получим RSTART и RLENGTH , чтобы определить местоположение и длину совпадающего текста, а затем используем substr($0, RSTART+2, RLENGTH-2)
для получения текста(+2
и -2
. чтобы удалить начальный '==' из совпавшего текста ).
С одним авком:
awk '{
printf "%s,", $3
match($0, /Required [a-z]+\.csv\.gz/, a)
print a[0]
}' /tmp/file
С 2 командами:
awk '{printf "%s,", $3}' /tmp/file
grep -oP 'f.==\KRequired \w+.csv.gz' /tmp/file
13,Required file.csv.gz
Попробуйте это,
Вариант 1:
awk '{gsub(/f.==/, ""); print $3","$(NF-4)" "$(NF-3)}' file
13,Required file.csv.gz
gsub
заменит "f.==" на null. Вариант 2:
echo "`awk '{ print $3}' file && awk -F '==' '{print $2}' file| awk '{print $1" "$2}'`" | tr '\n' ','
Примечание Опция :2 предназначена только для одного линейного входа.