50% отступов не будут центрировать вашего ребенка, он поместит его ниже центра. Я думаю, вы действительно хотите, чтобы набивка составляла 25%. Может быть, у вас просто не хватает места, поскольку ваш контент становится выше?
EDIT: Nevermind, сайт w3schools говорит, что
% Задает заполнение в процентах от ширины содержащий элемент
. Может быть, он всегда использует ширину? Я никогда не замечал.
То, что вы делаете, может быть достигнуто с помощью display: table (хотя бы для современных браузеров). Здесь объясняется методика .
Вот способ удаления кавычек
get-process | convertto-csv -NoTypeInformation -Delimiter "," | % {$_ -replace '"',''}
Но у него есть серьезный недостаток, если один из элементов содержит "
, он будет удален!
Это очень похоже на принятый ответ, но это помогает предотвратить нежелательное удаление «реальных» котировок.
$delimiter = ','
Get-Process | ConvertTo-Csv -Delimiter $delimiter -NoTypeInformation | foreach { $_ -replace '^"','' -replace "`"$delimiter`"",$delimiter -replace '"$','' }
Это сделает следующее:
Поэтому, единственный способ, которым это пошло бы неправильно, - это то, что одно из значений фактически содержало не только кавычки, но, в частности, последовательность цитат-разделителей-цитат, которые, надеюсь, должны быть довольно необычными.
Сегодня я работал над таблицей и думал об этом самом вопросе, когда я просматривал файл CSV в блокноте и решил посмотреть, что другие придумали. Кажется, многие из них слишком усложнили решение. Вот простой способ удалить кавычки из файла CSV, сгенерированного командлетом Export-Csv в PowerShell.
Создайте файл TEST.csv со следующими данными.
" ID »,« Имя »,« Штат »« 5 »,« Стефани »,« Аризона »,« 4 »,« Мелани »,« Орегон »,« Кэти »,« Техас »,« 8 », , «Idaho» «9», «Dolly», «Tennessee»
Сохранить как: TEST.csv
Хранить содержимое файла в переменной $ Test $ Test = Get-Content. \ TEST.csv
Загрузить переменную $ Test, чтобы увидеть результаты командлета get-content $ Test
Загрузите переменную Test снова и замените все («,») запятой, затем завершите начало и конец, удалив каждую метку кавычки $ Test.Replace ('","', ","). TrimStart ('"'). TrimEnd ('"')
Сохранить / заменить ТЕСТ .csv file $ Test.Replace ('","', ","). TrimStart ('"'). TrimEnd ('' ') | Out-File. \ TEST.csv -Force -Confirm: $ false
Тестирование нового файла. Вывод с помощью Import-Csv и Get-Content: Import-Csv. \ TEST.csv Get-Content. \ TEST. csv
Чтобы суммировать все, работа может быть выполнена с помощью двух строк кода $ Test = Get-Content. \ TEST.csv $ Test.Replace ('","', ",") .TrimStart ('' '). TrimEnd (' '') | Out-File. \ TEST.csv -Force -Confirm: $ false
Я столкнулся с этой проблемой, нашел этот вопрос, но не был удовлетворен ответами, потому что все они страдают, если данные, которые вы используете, содержат разделитель, который должен оставаться указанным.
Решение, приведенное ниже, похоже, решает эту проблему для общего случая и для всех вариантов, которые могут вызвать проблемы.
Я нашел этот ответ в другом месте, Удаление цитат из CSV, созданных PowerShell , и использовали его для кодирования примерного ответа для сообщества SO.
Attribution: Кредит для регулярного выражения , переходит на 100% в Russ Loski.
Код в функции, Remove-DoubleQuotesFromCsv
function Remove-DoubleQuotesFromCsv
{
param (
[Parameter(Mandatory=$true)]
[string]
$InputFile,
[string]
$OutputFile
)
if (-not $OutputFile)
{
$OutputFile = $InputFile
}
$inputCsv = Import-Csv $InputFile
$quotedData = $inputCsv | ConvertTo-Csv -NoTypeInformation
$outputCsv = $quotedData | % {$_ -replace `
'\G(?<start>^|,)(("(?<output>[^,"]*?)"(?=,|$))|(?<output>".*?(?<!")("")*?"(?=,|$)))' `
,'${start}${output}'}
$outputCsv | Out-File $OutputFile -Encoding utf8 -Force
}
Тестовый код
$csvData = @"
id,string,notes,number
1,hello world.,classic,123
2,"a comma, is in here","test data 1",345
3,",a comma, is in here","test data 2",346
4,"a comma, is in here,","test data 3",347
"@
$data = $csvData | ConvertFrom-Csv
"`r`n---- data ---"
$data
$quotedData = $data | ConvertTo-Csv -NoTypeInformation
"`r`n---- quotedData ---"
$quotedData
# this regular expression comes from:
# http://www.sqlmovers.com/removing-quotes-from-csv-created-by-powershell/
$fixedData = $quotedData | % {$_ -replace `
'\G(?<start>^|,)(("(?<output>[^,"]*?)"(?=,|$))|(?<output>".*?(?<!")("")*?"(?=,|$)))' `
,'${start}${output}'}
"`r`n---- fixedData ---"
$fixedData
$fixedData | Out-File e:\test.csv -Encoding ascii -Force
"`r`n---- e:\test.csv ---"
Get-Content e:\test.csv
Тест Выход
---- data ---
id string notes number
-- ------ ----- ------
1 hello world. classic 123
2 a comma, is in here test data 1 345
3 ,a comma, is in here test data 2 346
4 a comma, is in here, test data 3 347
---- quotedData ---
"id","string","notes","number"
"1","hello world.","classic","123"
"2","a comma, is in here","test data 1","345"
"3",",a comma, is in here","test data 2","346"
"4","a comma, is in here,","test data 3","347"
---- fixedData ---
id,string,notes,number
1,hello world.,classic,123
2,"a comma, is in here",test data 1,345
3,",a comma, is in here",test data 2,346
4,"a comma, is in here,",test data 3,347
---- e:\test.csv ---
id,string,notes,number
1,hello world.,classic,123
2,"a comma, is in here",test data 1,345
3,",a comma, is in here",test data 2,346
4,"a comma, is in here,",test data 3,347
Я обнаружил, что ответ Кори не работает для случая, когда исходная строка включала более одного пустого поля в строке. То есть «ABC», «0» было хорошо, но «ABC», «0» не обрабатывалось должным образом. Он прекратил заменять кавычки после «,,,». Я исправил его, добавив «|(?<output>)
» ближе к концу первого параметра, например:
% {$_ -replace `
'\G(?<start>^|,)(("(?<output>[^,"]*?)"(?=,|$))|(?<output>".*?(?<!")("")*?"(?=,|$))|(?<output>))', `
'${start}${output}'}
В зависимости от того, насколько ваши данные CSV являются патологическими (или «полнофункциональными»), одно из опубликованных решений уже будет работать.
Решение, опубликованное Kory Gill, почти идеально - единственный вопрос, оставшийся что кавычки удаляются также для ячеек, содержащих разделитель строк \r\n
, что вызывает проблемы во многих инструментах.
Решение добавляет новую строку к выражению класса символов:
$fixedData = $quotedData | % {$_ -replace `
'\G(?<start>^|,)(("(?<output>[^,"\n]*?)"(?=,|$))|(?<output>".*?(?<!")("")*?"(?=,|$)))' `
,'${start}${output}'}
Я не потратил много времени на удаление цитат. Но это обходное решение.
get-process | Export-Csv -NoTypeInformation -Verbose -Path $env:temp\test.csv
$csv = Import-Csv -Path $env:temp\test.csv
Это быстрый способ обхода пути, и может быть лучший способ сделать это.