4

私は Linux 環境で作業していますが、単純な繰り返しを減らすために、bash スクリプト作成に関するヘルプが必要です。

ファイル名の長いリストがあります(正確には937)。そのファイルの 1 つの行にはファイル名が 1 つしかないため、ファイルには合計 937 行あります。

ファイル名の前に特定のテキストを追加し、ファイル名の後に番号を順番に追加したいと思います。

テキストファイルにこのようなものが欲しいです。

aa.exe

bb.exe

cc.exe

asd aa.exe 1

asd bb.exe 2

asd cc.exe 3

どんな助けでも大歓迎です。

4

4 に答える 4

5

キックのために、ここにawkバージョンがあります:

awk '{print "foo", $0, NR}' files.lst 

構成されている場合files.lst:

a.txt
b.txt
c.txt

...次に、これは出力されます:

foo a.txt 1
foo b.txt 2
foo c.txt 3
于 2012-06-11T18:33:43.177 に答える
2

ピュアバッシュ:

while read -r line
do
    echo "asd $line $((++i))"
done < inputfile
于 2012-06-11T20:01:58.373 に答える
1

これは簡単な Python ソリューションです。.xml という名前のテキスト ファイルに保存しますso.py。まだ Python v 2.4.2 を使用しているため、このコードは以前のバージョンで動作するはずです。

#!/usr/bin/python

add_text = 'asd'  # the string to put in front

fn  = open('filenames.txt')
outf =  open('outdata.txt', 'w')

i = 1
for filename in fn:
    outf.write('%7s %10s %d\n' % (add_text, filename.strip(), i))
    i += 1

fn.close()
outf.close()

ファイルの名前が filefilenames.txtにあると想定し、生成された出力は file に送られますoutdata.txt

asd    aa.exe    1
asd    bb.exe    2
asd    cc.exe    3

ファイル名の前に追加されるテキストは、変数で固定されていますadd_text

スクリプトを実行するには、Linux プロンプトで次のコマンドを発行します。

chmod +x so.py    <-- this is only needed once
./so.py           <-- to run the script

そして、入力ファイルを使用して出力ファイルを生成します。

于 2012-06-11T18:01:10.983 に答える
0

ヴィムで:

:%s/.\+/\=printf("%s %s %d", "asdf", submatch(0), line("."))/
于 2012-06-11T20:34:31.567 に答える