Я хочу удалить все специальные символы, кроме |, _, - и .s, из файла, разделенного каналом.
Например, мой файл данных выглядит так:
tr -cd '[:print:]' < temp.txt > newfile -- I still get all the special chars.
tr -cd '[:alnum:]' <temp.txt -- I get only aphanum chars but I want to have a few special chars.
cat temp.txt | sed 's/[a-zA-Z0-9|_-.]//g' | sed '/^$/d' -- I get all the special chars but repetition is there
Ниже приведены выходные данные в виде
$ cat temp.txt | sed 's/[a-zA-Z0-9|_-.]//g' | sed '/^$/d' | tr -cd '[:print:]' | sort -u
""""){***+#=**~>>\+*****<(")
Если я хотя бы получу все уникальные специальные символы, я смогу поместить все в sed и заменить назначение NULL.
Мой ожидаемый результат:
ABCD|123|Name
EFGH|456|New-Name
IJKL|789|New_Name
MNOP|123|New_name
QRST|124|New_name
UVWX|353|Name_NAME
EFGH|456|New_Name
Eaba|456|New_Name
fdsf|456|New_Name
iouk|456|New_Name
Мне нужно посмотреть на конкретный столбец, если это поможет в сокращении кода. Как было сказано ранее, код должен включать символы |, _, - и удалять все остальное. Дайте мне знать, если вы, ребята, ищете больше информации.