我用awk连接多个csv文件并修改行 但我不希望标题打印我正在处理另一种方法中的标题我只是想要awk跳过标题
这是我的代码
public interface FilePdfRepository extends JpaRepository<FilePdf, Long> {
Page<FilePdf> getByFileNameContainingAndExtension(String fileName, String extension, Pageable pageable);
}
它提供了这样的输出
OutFileName="Final.csv" # Fix the output name
i=0 # Reset a counter
for filename in ./*.csv; do
if [ "$filename" != "$OutFileName" ] ; # Avoid recursion
then
if [[ $i -eq 0 ]] ; then
head -1 $filename > $OutFileName # Copy header if it is the first file
fi
text=$(echo $filename | cut -d '_' -f 2-) #spilliting the string to get the date
text=$(echo $text | cut -d '.' -f -1)
awk -F',' -v txt="$text" 'FNR>1||$0=txt" "$1 FS $0' OFS=',' $filename | cat >> $OutFileName # cocatinating with awk
i=$(( $i + 1 )) #increse number
fi
done
你可以看到awk每次为每个csv文件取出标题有没有办法忽略标题?
答案 0 :(得分:1)
在您的代码中,只需添加NR!=1 &&
:
OutFileName="Final.csv" # Fix the output name
i=0 # Reset a counter
for filename in ./*.csv; do
if [ "$filename" != "$OutFileName" ] ; # Avoid recursion
then
if [[ $i -eq 0 ]] ; then
head -1 $filename > $OutFileName # Copy header if it is the first file
fi
text=$(echo $filename | cut -d '_' -f 2-) #spilliting the string to get the date
text=$(echo $text | cut -d '.' -f -1)
awk -F',' -v txt="$text" 'FNR>1||NR!=1 && $0=txt" "$1 FS $0' OFS=',' $filename | cat >> $OutFileName # cocatinating with awk
i=$(( $i + 1 )) #increse number
fi
done
这将跳过第一行。
答案 1 :(得分:1)
使用{}
更改awk -F',' -v txt="$text" 'FNR>1 { print txt" "$1 FS $0 }'
并使用显式打印
accessibilityIdentifier