Bash:行から文字を削除する方法

Bash:行から文字を削除する方法

データを含むテーブルがあります。

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

数字で2つの列を作成したいです。 "./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

関連情報