特定の文字の発生を置き換える

特定の文字の発生を置き換える

ファイルがたくさんあります。ここにいくつかあります。何百もの多くがあります。

2019-02-08-07-32-00_UM8305_H.PDF  2019-03-17-17-59-59_UM8305_H.PDF  2019-05-05-23-59-59_UM8305_H.PDF  2019-07-08-12-31-57_UM8305_W.PDF  2019-08-20-00-01-52_UM8305_H.PDF  2019-11-07-08-26-51_UM8305_H.PDF
2019-02-08-10-07-45_UM8305_W.PDF  

"-"10番目のインデックスをに変更したかったです。置き換える"_"ファイルをすべて変更してから、名前を変更してandになるようにしました。これで、特定のケースでこれを置き換える方法がオンラインで見つかりません。 3、6、7番目の位置をすべて見つけて交換したい(すべてある場合)。ちょうど名前変更を使用して置き換えたが、月と日付が異なる何千ものファイルがあり、交換が効率的に行われないため、これを行うことはできません。'_''-''_''_UM8305_W.PDF''_UM8305_H.PDF''-''-''-'

ベストアンサー1

ソリューションは以下を使用します。パラメータ拡張。この場合、ファイル名の長さが同じで、特定のパターンに従うと仮定します。YYYY-MM-DD-HH-MM-SS_rest_of_string.PDF

for f in *.PDF; do
  mv $f ${f:0:10}_${f:11}
done

${f:0:10} 

文字列の先頭から10番目の文字までです。


そこから_12文字から最後まで追加して印刷します。

_${f:11}

文字番号は0から始まるため、11は12番目の文字を表します。

おすすめ記事