Я понял, что когда я пытаюсь получить доступ к диску, на котором возникает эта ошибка, он пытается записать, что последние скопированные файлы были перезаписаны в последний файл, после чего попытка доступа завершается неудачно, потому что уже записанная запись не совпадает с последней скопированной. элементы, поэтому его терпит неудачу. Самый здоровый способ спасти диск — это удалить последний элемент или элементы, скопированные в Windows.
Вы можете использовать printf
для форматирования вывода basename
и head
:
for file in /home/vikrant_singh_rana/AAA_USP/Combined-Files/*.csv; do
printf '%s,%s\n' "$(basename "$file" ".csv")" "$(head -n1 "$file")"
done >test.txt
Использование AWK:
awk 'NR==1 {print FILENAME "," $0}' *.csv
перечислит все файлы с расширением .csv
, содержащие хотя бы одну строку, с первой строкой.
path=(`ls -d /tmp/*.csv`)
for file in "${path[@]}"; do
head_line=`head -n1 $file`
file_no_extension=`basename $file | sed 's/\..*//'`
echo "$file_no_extension""$head_line"
done
Убедитесь, что путь является массивом:
[root@mole tmp]# set | grep ^path=
path=([0]="/tmp/ABC_TESTFILE1.csv" [1]="/tmp/ABC_TESTFILE2.csv")