目標:テキストファイルのフォルダーをループするために、行末、単語でラップされた、ハイフンでつながれた単語をすべて抽出し、それらをリストにまとめます。
001.txt be-littled
001.txt dev-eloper
002.txt sand-wich
...
目的は、リストをスキャンして、有効なハイフンでつながれた単語を単に単語でラップされた単語と区別することです(つまり、24対dev-eloper)。
私の現在のBash/sedスクリプトは、ほとんどの(十分な)単語を正しくキャッチします。(ハイフンでつながれた単語が段落を終了するときのように)微調整が必要なことはわかっています。
しかし、現在、現在のファイル名をパターンスペースに入れることができません。
for f in *.txt
do
sed -rn 'N;/PATTERN/!{D};s:PATTERN:\3-\5\n\7:;P;D' * > output.txt;
done
..where PATTERN =(^。)(+)(。+)(-\ n)(\ S +)(+)(。 $)
また
for f in *.txt; do sed -rn 'N;/(^.*)( +)(.+)(-\n)(\S+)( +)(.*$)/!{D};s:(^.*)( +)(.+)(-\n)(\S+)( +)(.*$):\3-\5\n\7:;P;D' * > output.txt;done
\3の直前に'"$f"'を入れてみましたが、すべての行の最後のページが先頭に追加されています(つまり、 '250.txt be-littled')。
私のコードは、私が思っていることを正確に実行していないのではないかと思います。:-)たぶん私はbash内のsedのループ順序を理解していません。
私はUbuntu12.10を使用していて、数週間前にbashとsedの学習を始めました。私は提案を受け入れています。
ありがとう、