Как использовать gsub в awk для поиска и замены ("./") и (".txt") символов в файле - PullRequest
0 голосов
/ 09 мая 2018

Я хочу удалить символы ". / " и " .txt " из моего файла, используя sub и awk

.

Это то, что мой ввод выглядит в файле

./file_name.txt|1230

Я хочу, чтобы вывод был

  file_name|1230

Пока что это то, что я написал. Я буду использовать вывод этого gsub и передавать его в awk и распечатывать его. Остальная часть моего кода работает, кроме этого.

gsub ( "[./txt]","" )

Ответы [ 3 ]

0 голосов
/ 09 мая 2018

Поскольку вы сказали, что вам нужно заменить файл, который вы можете использовать,

awk '{gsub(/\.txt|\.\//, "")}1'  file_name > tmp && mv tmp file_name

или вы можете использовать gawk, что намного проще,

gawk -i inplace '{gsub(/\.txt|\.\//, "")}1' file_name

Этот ответ объясняет, что означает 1 в конце утверждений.

0 голосов
/ 09 мая 2018

Вы упомянули awk, и другой ответ ответил на него, но вот способ, которым вы можете сделать это с sed:

sed 's|\./||g; s|\.txt||g' <<< "./file_name.txt|1230"
0 голосов
/ 09 мая 2018

Используйте gsub вместо этого и не забудьте экранировать . и /, как \. и \/:

$ echo "./file_name.txt|1230" | awk '{gsub(/\.\/|\.txt/,"")}1'
file_name|1230
...