добавить имя файла в качестве заголовка колонки

Вы можете разблокировать yum, выполнив два простых шага,

1) Выполните ps aux | grep yum, чтобы увидеть, какой процесс блокирует yum. 2) kill , чтобы убить процесс.

Снова выполните ps aux | grep yum, чтобы увидеть, убит процесс или нет. Yum будет разблокирован после убийства процесса.

1
10.10.2018, 20:55
5 ответов

Это записывает строку с rows file_1.txt, а затем удаляет весь файл:

 echo "rows $file"; cat "$file"

Если вы хотите удалить расширение файла из вывода, как показано выше, используйтеbasename:

 echo "rows $(basename $file.txt)"; cat "$file"
1
27.01.2020, 23:31
for file in./file_*.txt
do
  awk 'NR==1 { print "rows", FILENAME }; 1' "$file" > temp && mv temp "$file"
done

В качестве альтернативы, с sed, который поддерживает -iдля редактирования места -:

for file in./file_*.txt
do
  sed -i "1i\
rows $file" "$file"
done
1
27.01.2020, 23:31

Предположим, что file_*.txtсоответствует всем файлам, которые вы хотите обработать, и что в файлах используется символ табуляции в качестве разделителя:

tmpfile=$(mktemp)
for filename in file_*.txt; do
    { printf 'rows\t%s\n' "$filename"; cat "$filename"; } >$tmpfile &&
    mv "$tmpfile" "$filename"
done

Это будет перебирать совпадающие имена файлов, и для каждого файла будет выводиться строка, содержащая заголовок, за которым следует содержимое самого файла во временный файл, который, если все прошло нормально, затем заменяет исходный файл.

Обратите внимание, что это изменяет исходные файлы. В своем вопросе вы приводите один пример и говорите, что это нужно выводить в output.txt, но непонятно, куда писать результат для всех остальных файлов, поэтому я пошел по этому пути.

0
27.01.2020, 23:31

какой-то непостижимый perl, просто для удовольствия

perl -i -pe '$.==1&&do{($f=$ARGV)=~s/\..*?$//;$_="rows $f\n$_"};close ARGV if eof' *.txt
0
27.01.2020, 23:31

порт -доступен и действителен GNU sed, iили aне нужны, делается с помощью s///.

file=TheFileName;  sed -i '1{h;s/.*/rows '"$file"'/;G}' "$file"

Расширено и объяснено, удалить комментарии и использовать его в старых seds.

sed -i '                           # start sed script.
        1                          # Only on the first line.
          {                        # Execute this commands.
            h                      # hold the first line.
            s/.*/rows '"$file"'/   # Transform to line to insert.
            G                      # append a newline first line in hold.
          }                        # That's all.
       ' "$file"                   # Script end and file name edited.
0
27.01.2020, 23:31

Теги

Похожие вопросы