Вы забыли закрыть строку в двойных кавычках, которую вы открыли в первой строке вашей команды. (вы использовали одинарную кавычку в конце URL-адреса, вероятно, по ошибке ). Просто нажмите Ctrl+C и начните сначала. Затем убедитесь, что вы правильно закрываете каждую цитату.
Подсказка >
является вторичной подсказкой ($PS2
). Он отображается в ситуации, когда для завершения текущей команды требуется больше ввода. В вашем случае у вас есть открытая двойная кавычка, поэтому она ждет, пока вы ее закроете.
Вот еще одна ситуация, когда всплывает эта подсказка:
$ for str in hello world
> do
> echo "$str"
> done
hello
world
Команда не будет выполнена, пока я не наберу done
и не нажму Enter , поэтому вместо того, чтобы пытаться выполнить наполовину введенную команду for str in hello world
, оболочка ожидает, что я закончу цикл, набрав done
.
Или близко к тому, что вы на самом деле сделали:
$ echo "hello
> this is line 2
> Quotes like 'these' don't matter
> because we have an un-closed double quote at the start
> Now, we'll close it"
hello
this is line 2
Quotes like 'these' don't matter
because we have an un-closed double quote at the start
Now, we'll close it
Вот так:
$ awk '{
if(NR==1){
sub(/,/,"");
gsub(/ */,",");
print
}
else{
if(NR%5==2){
if(NR>2){print ""}
printf "%s,",$0
}
else{
printf "%s,",$0
}
}
}
END{print ""}' file
Symbol,Name,Sector,Market Cap $K,Last,Links
AAPL,Apple Inc,Computers and Technology,2,006,722,560,118.03,
AMGN,Amgen Inc,Medical,132,594,808,227.76,
AXP,American Express Company,Finance,91,986,280,114.24,
Вы можете добавить небольшую пост--обработку для удаления завершающих ,
и начальных пробелов:
$ awk '{ if(NR==1){sub(/,/,""); gsub(/ */,","); print}else{ if(NR%5==2 ){ if(NR>2){print ""}printf "%s,",$0}else{printf "%s,",$0}}}END{print ""}' file | sed 's/^ *//; s/,$//'
Symbol,Name,Sector,Market Cap $K,Last,Links
AAPL,Apple Inc,Computers and Technology,2,006,722,560,118.03
AMGN,Amgen Inc,Medical,132,594,808,227.76
AXP,American Express Company,Finance,91,986,280,114.24
Использование GNUsed
:
sed -z '
s/,//g;
# remove all commas
s/\n\([^[[:blank:]]\)/,\1/g;
# replace "\n" +a non-Tab/Space char with a comma and revert back char itself
s/[[:blank:]][[:blank:]]\+/,/g;
# replace repeated Tabs/Spaces with a comma
' infile
комментирует -команду free, а также удаляет начальные пробелы:
sed -z '
s/,//g;
s/\n\([^[[:blank:]]\)/,\1/g;
s/[[:blank:]][[:blank:]]\+/,/g; s/\n[[:blank:]]\+/\n/g;
' infile