如何在 awk 中使用 gsub 查找和替换文件中的 ("./") 和 (".txt") 字符

How to use gsub in awk to find and replace ("./") and (".txt") characters within a file

我想使用 sub 和 awk[=13= 从我的文件中删除字符“./”和“.txt” ]

这是我的输入在文件中的样子

./file_name.txt|1230

我希望输出为

  file_name|1230

到目前为止,这就是我所拥有的 written.I 将使用此 gsub 的输出并将其传递给 awk 并打印 it.Rest 我的代码正在运行,除了这个。

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

改用gsub并记住像\.\/一样转义./

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

既然你说你需要在一个你可以使用的文件中替换,

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

或者你可以使用gawk,这样就简单多了,

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

This answer 解释了语句末尾 1 的含义。

你提到了 awk 并且其他答案已经回答了它但是你可以通过 sed:

来做到这一点
sed 's|\./||g; s|\.txt||g' <<< "./file_name.txt|1230"