Я работаю на CSV файл, как этотСЕПГ, AWK регулярное выражение для замены строки
"EF", "12345", "Test, String", "Xyz"
и мне нужен выход в
"EF", "12345", "Test$$$ String", "Xyz"
в основном мне нужно заменить запятую с $$$
Я работаю на CSV файл, как этотСЕПГ, AWK регулярное выражение для замены строки
"EF", "12345", "Test, String", "Xyz"
и мне нужен выход в
"EF", "12345", "Test$$$ String", "Xyz"
в основном мне нужно заменить запятую с $$$
Вы можете попробовать что-то вроде этого:
, ([^"])
и заменить:
$$$ $1
или даже это:
([^"]),
И заменить:
$1$$$
мои sed и awk не поддерживают lookahead/позади. твоя делает? – Kent
Жизнь и учеба .. спасибо –
@shellter. Я обновил ... ты видел? –
Вы можете использовать гну-AWK для этого:
awk 'BEGIN{OFS=", "; FPAT="\"[^\"]+\""} {sub(/,/, "$$$", $3)} 1' file
"EF", "12345", "Test$$$ String", "Xyz"
sed ':a
s/^\(\([[:blank:]]*"[^"]*",\)*[[:blank:]]*"[^",]*\),/\1\$\$\$/
t a
' YourFile
;
внутри строки, ограниченной "
(так не самый быстрый)"
внутри струны (если в корпусе, необходимо немного адаптировать)Он также работает с подполем.
AWK '{суб (/ Test, /, "Test $$$")} 1' файл
"EF", "12345", "Test $$$ String", "Xyz"
Что. Have.You.Try? –
Iam сортирует огромный CSV-файл (~ 4 ГБ) на основе определенных столбцов. Файл CSV разделен запятой. Я намерен использовать unix 'sort', который быстрее, однако у меня есть несколько строк, которые содержат запятую (,) в значениях строк. Как я сортирую в таком случае, когда число столбцов будет увеличиваться, если (,) используется как разделитель. Пример: Здесь я хочу сортировать по 2 и 4 столбцам, но если я использую (,) как разделитель, я получу всего 5 столбцов в 1-й строке и 4 столбца во второй строке, что испортит сортировку. «wert», «DGC», «Xyt, temp», «3456» «wert», «ABC», «ppp», «1234» – jsphdnl
устранить целый ряд проблем из вашей обработки данных и начать экспорт ваших данные с символом '|' в качестве разделителя. Удачи. – shellter