回答編集履歴
2
不備修正
answer
CHANGED
@@ -9,7 +9,8 @@
|
|
9
9
|
bashなら、
|
10
10
|
```
|
11
11
|
for a in *
|
12
|
+
cp $a $a.bak
|
12
|
-
do sed -r -e "s/<([^>]+?):(.*)>/<\1_\2>/g"
|
13
|
+
do sed -r -e "s/<([^>]+?):(.*)>/<\1_\2>/g" $a.bak > $a # 追記。ファイルの置きかえになっていなかったので
|
13
14
|
done
|
14
15
|
```
|
15
16
|
|
1
ディレクトリ内すべてのファイルに行う方法
answer
CHANGED
@@ -3,4 +3,18 @@
|
|
3
3
|
```
|
4
4
|
$ echo '<a:b>'|sed -r -e "s/<([^>]+?):(.*)>/<\1_\2>/g"
|
5
5
|
$ echo '<a:b>'|sed -e "s/<([^>]*):(.*)>/<\1_\2>/g"
|
6
|
+
```
|
7
|
+
> 同様の処理をディレクトリ内すべてのファイルに行う方法
|
8
|
+
|
9
|
+
bashなら、
|
10
|
+
```
|
11
|
+
for a in *
|
12
|
+
do sed -r -e "s/<([^>]+?):(.*)>/<\1_\2>/g"
|
13
|
+
done
|
14
|
+
```
|
15
|
+
|
16
|
+
perlを使う手もあります。
|
17
|
+
以下をコマンドラインで実行すると、カレントディレクトリの全ファイルで書きかえが実行され、元データは.bakの付いたファイルにバックアップされます。
|
18
|
+
```
|
19
|
+
perl -i.bak -pe "s/<([^>]+?):(.*)>/<\1_\2>/g" *
|
6
20
|
```
|