我想使用sub和awk从我的文件中删除字符“ ./ ”和“ .txt ”
这是我的输入在文件中看到的内容
./file_name.txt|1230
我希望输出为
file_name|1230
到目前为止这是我写的。我将使用此gsub的输出并将其传递给awk并打印它。除了这个,我的代码的恢复正在工作。
gsub ( "[./txt]","" )
答案 0 :(得分:3)
请改为使用gsub
,并记住要逃离.
和/
,例如\.
和\/
:
$ echo "./file_name.txt|1230" | awk '{gsub(/\.\/|\.txt/,"")}1'
file_name|1230
答案 1 :(得分:0)
由于您说您需要替换可以使用的文件,
awk '{gsub(/\.txt|\.\//, "")}1' file_name > tmp && mv tmp file_name
或者您可以使用更简单的gawk
gawk -i inplace '{gsub(/\.txt|\.\//, "")}1' file_name
This answer解释了语句结尾处1
的含义。
答案 2 :(得分:0)
你提到了awk
而另一个答案已经回答了,但是你可以用sed
来做到这一点:
sed 's|\./||g; s|\.txt||g' <<< "./file_name.txt|1230"