Цель:
Мне нужно изменить URL-адреса, чтобы в них оставалось только число (широта / долгота / id): в .csv-файле у меня есть один "определенный заголовок в заголовке". Это мне нужно найти. В столбце этого найденного Титела мне нужно будет удалить начало и конец URL-адресов, поэтому в нем останется только то, что было частью URL-адреса. Это мне нужно будет сделать на разных структурированных CSV с несколькими столбцами с разными титрами и разными шаблонами URL. Есть ли способ написать функцию в bash с помощью awk?
Я пробовал - и она не работает, потому что в ней отсутствует много недостающих знаний:
#!/bin/bash
CSVFILE=$(find ./aufzubereiten -type f ! -name ".DS_Store") #only one file in this folder.
FILENAME=$(basename "$CSVFILE")
function modify_col() {
COL= how to find the right column in the csv?
awk -F',' OFS="," -v pat='"$PAT"' '{sub(/pat/,X,$${COL})} 1' "$CSVFILE" > "$CSVFILE".tmp1 && mv "$CSVFILE".tmp1 "$CSVFILE"
}
COLTITEL="certain Titel in Header"
PAT='/Text1234Text[0-9]{5,8}Text1.html'
PATNEW=''
modify_col
COLTITEL="certain Titel2 in Header"
PAT='/Text2234Text[0-9]{5,8}Text2.html'
PATNEW=''
modify_col
COLTITEL="certain Titel3 in Header"
PAT='/Text3234Text[0-9]{5,8}Text3.html'
PATNEW=''
modify_col
Пример файла:
header1, header2, certain Titel in Header, certain Titel2 in Header, certain Titel3 in Header
,,/Text2234Text7846641Text.html,/Text2234Text8974341Text2.html,/Text2234Text823241Text3.html
,,/Text2234Text7846642Text.html,/Text2234Text8974342Text2.html,/Text2234Text823242Text3.html
,,/Text2234Text7846643Text.html,/Text2234Text8974343Text2.html,/Text2234Text823243Text3.html
Результат должен быть:
header1, header2, certain Titel in Header, certain Titel2 in Header, certain Titel3 in Header
,,7846641,8974341,823241
,,7846642,8974342,823242
,,7846643,8974343,823243
Спасибо за ваши идеи:)