Shell 如何将一个csv文件内容映射到第二个csv文件,并使用unix将其写入另一个csv文件
在编写了一些unix脚本之后,我能够设法将不同xml文件中的数据转换为csv格式,现在我遇到了以下问题 file1.csv:包含Shell 如何将一个csv文件内容映射到第二个csv文件,并使用unix将其写入另一个csv文件,shell,unix,csv,Shell,Unix,Csv,在编写了一些unix脚本之后,我能够设法将不同xml文件中的数据转换为csv格式,现在我遇到了以下问题 file1.csv:包含 1,5,6,7,8 2,3,4,5,9 1,6,10,11,12 1,5,11,12 1,Mango,Tuna,Webby,Through,Franky,Sam,Sumo 2,Franky 3,Sam 4,Sumo 5,Mango,Tuna,Webby 6,Tuna,Webby,Through 7,Through,Sam,Sumo 8,Nothing 9,Sam,S
1,5,6,7,8
2,3,4,5,9
1,6,10,11,12
1,5,11,12
1,Mango,Tuna,Webby,Through,Franky,Sam,Sumo
2,Franky
3,Sam
4,Sumo
5,Mango,Tuna,Webby
6,Tuna,Webby,Through
7,Through,Sam,Sumo
8,Nothing
9,Sam,Sumo
10,Sumo,Mango,Tuna
11,Mango,Tuna,Webby,Through
12,Mango,Tuna,Webby,Through,Franky
file2.csv:包含
1,5,6,7,8
2,3,4,5,9
1,6,10,11,12
1,5,11,12
1,Mango,Tuna,Webby,Through,Franky,Sam,Sumo
2,Franky
3,Sam
4,Sumo
5,Mango,Tuna,Webby
6,Tuna,Webby,Through
7,Through,Sam,Sumo
8,Nothing
9,Sam,Sumo
10,Sumo,Mango,Tuna
11,Mango,Tuna,Webby,Through
12,Mango,Tuna,Webby,Through,Franky
我想要的输出是
1,5,6,7,8
Mango,Tuna,Webby,Through,Franky,Sam,Sumo
Mango,Tuna,Webby
Tuna,Webby,Through
Through,Sam,Sumo
Nothing
Common word:None
2,3,4,5,9
Franky
Sam
Sumo
Mango,Tuna,Webby
Sam, Sumo
Common Word:None
1,6,10,11,12
Mango,Tuna,Webby,Through,Franky,Sam,Sumo
Tuna,Webby,Through
Sumo,Mango,Tuna
Mango,Tuna,Webby,Through
Mango,Tuna,Webby,Through,Franky
Common word: Tuna
1,5,11,12
Mango,Tuna,Webby,Through,Franky,Sam,Sumo
Mango,Tuna,Webby
Mango,Tuna,Webby,Through
Mango,Tuna,Webby,Through,Franky
Common word: Mango,Tuna,Webby
我感谢任何帮助
谢谢
我得到了一些解决方案,但还不完全
!/bin/bash
计数=1
计数2=1
对于'cat file1.csv中的i`
做
echo$i>$count.txt
cat$count.txt|tr\n>$count_2.txt
count=`expr$count+1`
count_2=`expr$count_2+1`
完成;
此代码将为file1.csv中的每一行创建单独的文件,
bash file3_search.sh
file3_search.sh
================
!/bin/bash
cat file2.csv | sed'/^$/d'| sed's/[]*$/'>trim.txt
dos2unix-q 1.txt 1.txt
dos2unix 2.txt 2.txt
dos2unix 3.txt 3.txt
回声第一组合结果
因为我在'cat 1.txt中`
做
cat trim.txt | egrep-w$i
完成>组合1.txt;
回波第二组合结果
因为我在'cat 2.txt`
做
cat trim.txt | egrep-w$i
完成>组合2.txt;
回声第三组合结果
因为我在'cat3.txt`
做
cat trim.txt | egrep-w$i
完成>组合3.txt;
伙计们,我不擅长编程我是软件测试员请有人重新考虑我的代码,还请告诉我如何在那些Combination.txt文件中找到常用词
对于$cat 1.csv中的行;做
回声线;
grepline=`echo$line | sed's/\+//g;s/,/,|/g;s/^\.\$/^\1,/'`;
egrep$grepline 2.csv
白鹭$grepline 2.csv|\
awk-F,'
{对于i=2;i这里有一个答案。它取决于bash版本4的关联数组功能:
IFS=,
declare -a words
# read and store the words in file2
while read line; do
set -- $line
n=$1
shift
words[$n]="$*"
done < file2.csv
# read file1 and process
while read line; do
echo "$line"
set -- $line
indexes=( "$@" )
NF=${#indexes[@]}
declare -A common
for (( i=0; i<$NF; i++)); do
echo "${words[${indexes[$i]}]}"
set -- ${words[${indexes[$i]}]}
for word; do
common[$word]=$(( ${common[$word]} + 1))
done
done
printf "Common words: "
n=0
for word in "${!common[@]}"; do
if [[ ${common[$word]} -eq $NF ]]; then
printf "%s " $word
(( n++ ))
fi
done
[[ $n -eq 0 ]] && printf "None"
unset common
printf "\n\n"
done < file1.csv
我已经发布了我的脚本作业,请帮助我如何获取常用词。您好,谢谢您的帮助,但如果我的文件包含多个常用词,它将只返回一个词如何获取我正在尝试处理的所有常用词如果我能解算,我将发布它,如果您知道简易方法,请发表评论。我已更改了输出文件,请查看。谢谢实际上你至少应该解决这个问题,因为这是你的家庭作业。但我会更新我的答案。