Bash:如何从行中删除字符

Bash:如何从行中删除字符

有一个包含数据的表。

./result_4_0.txt
./result_4_45.txt
./result_4_45.txt
./result_4_0.txt

我想从数字创建两列。如何仅用空格替换“./result_”“_”“.txt”。我在 sed 之前尝试过,但它不能与点或斜杠一起使用。

file="filename.txt"
while IFS= read line

do

done <"$file"

答案1

sed与点和斜线完美配合。你只需要逃避这些:

sed 's/\(\.\/result_\|_\)/ /g' filename.txt

或者,如果你想要更多的可读性,类似的东西也可以:

sed 's=\./result_= =;s=_= =' filename.txt

答案2

$ tr -dc "\n0-9_" < input | awk -F_ '{print $2,$3}'
4 0
4 45
4 45
4 0

相关内容