У меня есть несколько строк, и каждое поле в строке имеет заголовок, идентифицирующий это поле. В настоящее время файл представляет собой просто CSV-файл, и хотя первые несколько полей будут выстроены в строку, если поместить их в Excel, остальная часть строки будет выровнена из-за того, что в некоторых строках нет некоторых полей или поля вышли из строя. Я пытаюсь сделать так, чтобы каждое поле было выровнено с правильным заголовком столбца при копировании в Excel и с использованием инструмента «текст в столбцы». Я уверен, что это будет означать места заполнения в строках с соответствующим количеством запятых, чтобы обеспечить наличие достаточного количества пустых ячеек, чтобы выровнять это поле данных с правильным столбцом.
Input:
id1,id2,id3,id4,id5,id6,id7,id8
id1 field1,id2 field2,id3 field3,id8 field8,id5 field5,id6 field6,id7 field7,id4 field4
id1 field1,id6 field6,id3 field3,id4 field4,id5 field5,id2 field2,id8 field8
id1 field1,id4 field4,id7 field7,id6 field6,id5 field5,id8 field8
id1 field1,id2 field2,id3 field3,id4 field4,id5 field5,id6 field6,id7 field7,id8 field8
id1 field1,id4 field4,id2 field2,id5 field5,id6 field6,id8 field8
id1 field1,id2 field2,id8 field8,id4 field4,id5 field5,id6 field6,id7 field7,id3 field3
Output:
id1,id2,id3,id4,id5,id6,id7,id8
id1 field1,id2 field2,id3 field3,id4 field4,id5 field5,id6 field6,id7 field7,id8 field8
id1 field1,id2 field2,id3 field3,id4 field4,id5 field5,id6 field6,,id8 field8
id1 field1,,,id4 field4,id5 field5,id6 field6,id7 field7,id8 field8
id1 field1,id2 field2,id3 field3,id4 field4,id5 field5,id6 field6,id7 field7,id8 field8
id1 field1,id2 field2,,id4 field4,id5 field5,id6 field6,,id8 field8
id1 field1,id2 field2,id3 field3,id4 field4,id5 field5,,id7 field7,id8 field8
В основном я пытаясь изменить порядок строк на основе строки заголовка, затем добавьте дополнительные запятые, где поле, которое должно существовать, не существует в этой конкретной строке. Каждое поле имеет метку, предшествующую фактическим данным, которая соответствует заголовку, под которым должно быть поле.
Я ничего не могу найти в Google, и я не уверен, как это сделать. Извините, больше не могу указывать c.
Новый набор данных запускается с помощью awk:
Input:
id1,id2,id3,id4
id1.100 "field1",id2.100 "field2",id3.100 "field3",id4.100 "field4"
id1.101 "field1",id2.101 "field2",id3.101 "field3",id4.101 "field4"
id1.102 "field1",id2.102 "field2",id3.102 "field3",id4.102 "field4"
id1.103 "field1",id2.103 "field2",id3.103 "field3",id4.103 "field4"
output:
id1,id2,id3,id4
,,,
,,,
,,,
,,,
Не уверен, почему он это делает. Новый набор данных содержит символы "/": "" ("внутри кавычек в каждом поле. Число после символа". "В части id изменяется между каждым набором данных, который я бы использовал в этом сценарии sh.
Я просто попробовал это:
Input:
id1.100,id2.100,id3.100,id4.100
id1.100 "field1",id2.100 "field2",id3.100 "field3",id4.100 "field4"
id1.101 "field1",id2.101 "field2",id3.101 "field3",id4.101 "field4"
id1.102 "field1",id2.102 "field2",id3.102 "field3",id4.102 "field4"
id1.103 "field1",id2.103 "field2",id3.103 "field3",id4.103 "field4"
output:
id1,id2,id3,id4
id1.100 "field1",id2.100 "field2",id3.100 "field3",id4.100 "field4"
,,,
,,,
,,,
Так есть ли способ идентифицировать поле идентификатора только по началу? Например, если поле идентификатора было Name.105, чтобы идентифицировать его только по строка "name"?
Повторяющиеся поля в наборе данных:
Input:
id1.100,id2.100,id3.100,id4.100
id1.100 "field1",id2.100 "field2",id3.100 "field3",id3.100 "field3",id2.100 "field2"
id1.101 "field1",id2.101 "field2",id2.101 "field2",id3.101 "field3",id3.101 "field3"
id1.102 "field1",id2.102 "field2",id3.102 "field3",id4.103 "field4",id1.102 "field1"
Output:
id1.100,id2.100,id3.100,id4.100
id1.100 "field1",id2.100 "field2",id3.100 "field3",
id1.101 "field1",id2.101 "field2",id3.101 "field3",
id1.102 "field1",id2.102 "field2",id3.102 "field3",id4.103 "field4"