0

Linux には多くのファイルがあり、すべてのファイルの n 行目の m 番目の単語を、ファイル名と共にプレーン .txt ファイルにコピー ペーストする必要があります。したがって、最終的なテキスト ファイルは次のようになります...

<FileName1> <mth word of nth line of FileName1>
<FileName2> <mth word of nth line of FileName2>
.
.
<FileNameN> <mth word of nth line of FileNameN>

Linux のコマンドを誰か教えてください。ありがとうございます!!

4

2 に答える 2

1
#!/bin/sh
if [ "$#" != 3 ]
then
  echo "$0 [dir] [lineno] [wordno]"
  exit
fi

rm -f a.txt
dir=$1
lineno=$2
wordno=$3

while read -u3 file
do
  read -a words < <(tail -n+$lineno $file)
  echo $file ${words[wordno-1]} >> a.txt
done 3< <(find $dir -type f)
于 2013-01-13T09:05:08.513 に答える
0

使ってawkみませんか?

#!/bin/bash

# Usage: <line> <word> <files...>

awk "NR==$1 { print FILENAME \" \" \$$2 }" "${@:3}"
于 2013-01-13T09:59:25.603 に答える